Який найкращий спосіб досягти цього?
Який найкращий спосіб досягти цього?
Відповіді:
Використовувати 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)