Obtenez les premiers N éléments d'un tableau?

207

Quelle est la meilleure façon d'y parvenir?

GSto
la source
7
si jamais vous avez besoin de trouver une fonction pour faire quelque chose avec un tableau, allez ici: php.net/manual/en/function.array.php et parcourez les fonctions.
Galen
21
plutôt que de venir à SO!?
Hrishikesh Choudhari

Réponses:

360

Utilisez array_slice ()

Ceci est un exemple du manuel PHP: array_slice

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

Il n'y a qu'un petit problème

Si les indices de tableau sont significatifs pour vous, n'oubliez pas que array_slicecela réinitialisera et réorganisera les indices de tableau numériques . Vous devez preserve_keysdéfinir le drapeau truepour éviter cela. (4ème paramètre, disponible depuis 5.0.2).

Exemple:

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

Production:

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

Vous pouvez utiliser array_slice comme:

$sliced_array = array_slice($array,0,$N);
codaddict
la source
12

Dans l'ordre actuel? Je dirais array_slice () . Puisqu'il s'agit d'une fonction intégrée, il sera plus rapide que de parcourir le tableau tout en gardant la trace d'un index d'incrémentation jusqu'à N.

Fanis Hatzidakis
la source
4

array_slice () est la meilleure chose à essayer, voici les exemples:

<?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));
?>
Étoile
la source