Каков наилучший способ сделать это?
Каков наилучший способ сделать это?
Ответы:
Используйте 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');
Вы можете использовать array_slice как:
$sliced_array = array_slice($array,0,$N);
В текущем порядке? Я бы сказал, array_slice () . Так как это встроенная функция, она будет быстрее, чем циклически проходить по массиву, отслеживая приращивающийся индекс до N.
Лучше всего попробовать 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));
?>
если вы хотите получить первые N элементов, а также удалить их из массива, вы можете использовать array_splice()
(обратите внимание на «p» в «соединении»):
http://docs.php.net/manual/da/function.array-splice.php
используйте это так: $array_without_n_elements = array_splice($old_array, 0, N)