Overview
KB
Technical FAQ
PHP Manual
CSS2 Manual
HTML Manual
JS Guide
JS Reference
PhpDock Manual
Nu-Coder Manual
PhpExpress Manual
PHP Joomla
Development
Learn PHP
 
<Locale::isRightToLeftLocale::minimizeSubtags>
^LocaleLast updated: Mon, 26 Oct 2026

Locale::lookup

locale_lookup

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Locale::lookup -- locale_lookup — Searches the language tag list for the best match to the language

Description

Object-oriented style

public static function Locale::lookup(
    array $languageTag,
    string $locale,
    bool $canonicalize = false,
    ?string $defaultLocale = null
): ?string

Procedural style

function locale_lookup(
    array $languageTag,
    string $locale,
    bool $canonicalize = false,
    ?string $defaultLocale = null
): ?string

Searches the items in languageTag for the best match to the language range specified in locale according to RFC 4647's lookup algorithm.

Parameters

languageTag

An array containing a list of language tags to compare to locale. Maximum 100 items allowed.

locale

The locale to use as the language range when matching.

canonicalize

If true, the arguments will be converted to canonical form before matching.

defaultLocale

The locale to use if no match is found.

Return Values

The closest matching language tag or default value.

Returns null when the length of locale exceeds INTL_MAX_LOCALE_LEN.

Changelog

Version Description
7.4.0 defaultLocale is nullable now.

Examples

Example #1 locale_lookup() example

<?php
$arr = array(
    'de-DEVA',
    'de-DE-1996',
    'de',
    'de-De'
);
echo locale_lookup($arr, 'de-DE-1996-x-prv1-prv2', true, 'en_US');
?>

Example #2 OO example

<?php
$arr = array(
    'de-DEVA',
    'de-DE-1996',
    'de',
    'de-De'
);
echo Locale::lookup($arr, 'de-DE-1996-x-prv1-prv2', true, 'en_US');
?>

The above example will output:

de_de_1996

See Also


<Locale::isRightToLeftLocale::minimizeSubtags>
^LocaleLast updated: Mon, 26 Oct 2026