


Блог IT-шника
Блог IT-шника
Привіт:) У цьому пості покажу як на PHP відсортувати асоціативний масив за заданим порядком (ключами), використовуючи інший масив.
Нехай є масив $languages
із мовами, який потрібно відсортувати за ключами із масиву $order
.
$languages = [ 'de'=>'Німецька', 'ua'=>'Українська', 'en'=>'Англійська' ];
$order = [ 'ua', 'en', 'de', 'es', 'it' ];
Нам потрібно, щоб елементи масиву $languages
були в тому ж порядку, що й у масиві $order
.
/**
* https://wp-kama.ru/note/sortirovka-assotsiativnogo-massiva
*/
$order = array_flip( $order );
// видаляємо з $order все, чого немає у $languages
$order = array_intersect_key( $order, $languages );
$languages = array_merge( $order, $languages );
// або
$languages = array_replace( $order, $languages );
В результаті:
print_r( $languages );
Array
(
[ua] => Українська
[en] => Англійська
[de] => Німецька
)