O4DOIXmlFilter::getTranslationsByPrecedence PHP Method

getTranslationsByPrecedence() public method

Re-order localized data by locale precedence.
public getTranslationsByPrecedence ( $localizedData, $localePrecedence ) : array
$localizedData array An array of localized data (key: locale, value: localized data).
$localePrecedence array An array of locales by descending priority.
return array Re-ordered localized data.
    function getTranslationsByPrecedence($localizedData, $localePrecedence)
    {
        $reorderedLocalizedData = array();
        // Check whether we have localized data at all.
        if (!is_array($localizedData) || empty($localizedData)) {
            return $reorderedLocalizedData;
        }
        // Order by explicit locale precedence first.
        foreach ($localePrecedence as $locale) {
            if (isset($localizedData[$locale]) && !empty($localizedData[$locale])) {
                $reorderedLocalizedData[$locale] = $localizedData[$locale];
            }
            unset($localizedData[$locale]);
        }
        // Order any remaining values alphabetically by locale
        // and amend the re-ordered array.
        ksort($localizedData);
        $reorderedLocalizedData = array_merge($reorderedLocalizedData, $localizedData);
        return $reorderedLocalizedData;
    }