Сортировка массива по ключам по другому массиву - PullRequest
2 голосов
/ 22 февраля 2011

Мне нужно отсортировать массив по его ключам на основе порядка значений в другом массиве. Простой пример:

$sort_array = array( 'key1', 'key2' );

$array_that_needs_sorting = array( 'key2' => 'value2', 'key1' => 'value1' );

После сортировки массив должен быть:

array( 'key1' => 'value1', 'key2' => 'value2' );

Ответы [ 3 ]

3 голосов
/ 22 февраля 2011

Если вы знаете, что все ключи $sort_array присутствуют в массиве, который нужно отсортировать, вы можете сделать это:

$sorted = array_merge(array_flip($keys), $unsorted);

, где $keys равно $sort_array и $unsorted равно$array_that_needs_sorting.

0 голосов
/ 22 февраля 2011
array_merge(array_combine($sort_array, array_fill(0, count($sort_array), null))
   , $array_that_needs_sorting);
0 голосов
/ 22 февраля 2011

Вы могли бы взглянуть на Сортировать массив по ключам на основе другого массива? . Это должно дать вам представление о том, как этого добиться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...