Отримати перші N елементів масиву?


207

Який найкращий спосіб досягти цього?


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

21
замість того, щоб перейти до SO !?
Хрішикеш Чудхарі

Відповіді:


359

Використовувати 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.