Получить первые N элементов массива?


207

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


7
если вам когда-нибудь понадобится найти функцию для выполнения чего-либо с массивом, перейдите сюда: php.net/manual/en/function.array.php и просмотрите функции.
Гален

21
а не переходить на ТАК ?!
Гришикеш Чоудхари

Ответы:


360

Используйте array_slice ()

Это пример из руководства по PHP: array_slice

$input = array("a", "b", "c", "d", "e");
$output = array_slice($input, 0, 3);   // returns "a", "b", and "c"

Есть только небольшая проблема

Если индексы массива значат для вас, помните, что array_sliceэто сбросит и переупорядочит индексы числового массива. Вам нужно установить preserve_keysфлаг, trueчтобы избежать этого. (4-й параметр, доступен с 5.0.2).

Пример:

$output = array_slice($input, 2, 3, true);

Вывод:

array([3]=>'c', [4]=>'d', [5]=>'e');


12

В текущем порядке? Я бы сказал, array_slice () . Так как это встроенная функция, она будет быстрее, чем циклически проходить по массиву, отслеживая приращивающийся индекс до N.


4

Лучше всего попробовать array_slice () , вот примеры:

<?php
$input = array("a", "b", "c", "d", "e");

$output = array_slice($input, 2);      // returns "c", "d", and "e"
$output = array_slice($input, -2, 1);  // returns "d"
$output = array_slice($input, 0, 3);   // returns "a", "b", and "c"

// note the differences in the array keys
print_r(array_slice($input, 2, -1));
print_r(array_slice($input, 2, -1, true));
?>

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.