PHP сортирует многомерный массив по другому массиву - PullRequest
1 голос
/ 09 декабря 2011

У меня есть массив с идентификаторами, который выглядит как

array(
      0  => 12
      1  => 30
      2  => 50
      3  => 11
      4  => 22
      5  => 45
      [...]
)

, и другой многомерный массив, который выглядит как

array(
      0  => array(
                  'id' => 12,
                  'title' => 'title 12',
      ),
      1  => array(
                  'id' => 50,
                  'title' => 'title 50',
      ),
      2  => array(
                  'id' => 11,
                  'title' => 'title 11',
      ),
      3  => array(
                  'id' => 30,
                  'title' => 'title 30',
      ),
      4  => array(
                  'id' => 45,
                  'title' => 'title 45',
      ),
      5  => array(
                  'id' => 22,
                  'title' => 'title 22',
      ),

)

Идентификаторы второго массива соответствуют значениям в первоммассив.Что мне нужно сделать, так это отсортировать второй массив по идентификаторам подмассивов в порядке их расположения в первом массиве.

Какой лучший способ сделать это?

1 Ответ

2 голосов
/ 09 декабря 2011

Предполагается, что массив с идентификаторами имеет имя $order, а массив со значениями - $items:

$keys = array_flip($order);

usort($items, function($a, $b) use($keys)
{
    return $keys[$a['id']] - $keys[$b['id']];
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...