PHP извлекает часть из массива, сохраняя предыдущие ключи - PullRequest
14 голосов
/ 26 января 2011

У меня есть массив с конкретными ключами.Я хочу получить первые 5 элементов массива.Я использую array_splice().Все хорошо, но ключей в новом массиве 0, 1, 2, 3, 4.И я хочу сохранить предыдущие ключи массива.Я могу сделать это с foreach, но я нахожу элегантный метод.Мой код:

$levels = array('a' => 1, 'b' =>2, 'c' => 3, 'd' => 4, 'f' => 5, 'g' => 6);
$levels = array_splice($levels, 5);

Заранее спасибо.Извините за мой английский.

Ответы [ 2 ]

25 голосов
/ 26 января 2011

Попробуйте array_slice с $preserve_keys, установленным на true.

10 голосов
/ 26 января 2011

С array_ sl ice , исходный массив не изменяется:

$levels = array('a' => 1, 'b' =>2, 'c' => 3, 'd' => 4, 'f' => 5, 'g' => 6);
$firstLevels = array_slice($levels, 0, 5, true);
// count($levels) is 6, count($firstLevels) 5
...