Punic\Territory::getTerritoriesForLanguage PHP Метод

getTerritoriesForLanguage() публичный статический Метод

Return a list of territory IDs where a specific language is spoken, sorted by the total number of people speaking that language.
public static getTerritoriesForLanguage ( string $languageID, float $threshold ) : array
$languageID string The language identifier
$threshold float The minimum percentage (from 0 to 100) to consider a language as spoken in a Country
Результат array
    public static function getTerritoriesForLanguage($languageID, $threshold = 0)
    {
        $peopleInTerritory = array();
        foreach (Data::getGeneric('territoryInfo') as $territoryID => $territoryInfo) {
            $percentage = null;
            foreach ($territoryInfo['languages'] as $langID => $langInfo) {
                if (strcasecmp($languageID, $langID) === 0 || stripos($langID, $languageID . '_') === 0) {
                    if ($percentage === null) {
                        $percentage = $langInfo['population'];
                    } else {
                        $percentage += $langInfo['population'];
                    }
                }
            }
            if ($percentage !== null && $percentage >= $threshold) {
                $peopleInTerritory[$territoryID] = $territoryInfo['population'] * $percentage;
            }
        }
        arsort($peopleInTerritory, SORT_NUMERIC);
        $territoryIDs = array_keys($peopleInTerritory);
        return $territoryIDs;
    }

Usage Example

Пример #1
0
 /**
  * Return a list of territory codes where a specific language is spoken, sorted by the total number of people speaking that language.
  *
  * @param string $languageCode The language code (eg. 'en')
  *
  * @return array Returns a list of country codes
  */
 public function getCountriesForLanguage($languageCode)
 {
     return \Punic\Territory::getTerritoriesForLanguage($languageCode);
 }