$scriptData) { $result[$scriptCode] = self::extractScriptName($scriptData, $preferredVariant); } $comparer = new Comparer($locale); $comparer->sort($result, true); return $result; } /** * @param string|array $scriptData * @param string|mixed $preferredVariant * * @return string */ private static function extractScriptName($scriptData, $preferredVariant) { if (is_string($scriptData)) { return $scriptData; } if (!is_string($preferredVariant) || $preferredVariant === '' || !isset($scriptData[$preferredVariant])) { return $scriptData['']; } return $scriptData[$preferredVariant][0]; } }