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

207

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

GSto
источник
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');
Corbacho
источник
29

Вы можете использовать array_slice как:

$sliced_array = array_slice($array,0,$N);
codaddict
источник
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));
?>
звезда
источник
1

если вы хотите получить первые N элементов, а также удалить их из массива, вы можете использовать array_splice()(обратите внимание на «p» в «соединении»):

http://docs.php.net/manual/da/function.array-splice.php

используйте это так: $array_without_n_elements = array_splice($old_array, 0, N)

Алон Гулдман
источник