257 votes

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

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

9 votes

Si vous avez besoin de trouver une fonction pour faire quelque chose avec un tableau, allez ici : php.net/manual/fr/function.array.php et regardez les fonctions.

28 votes

Plutôt que de venir chez SO !

440voto

corbacho Points 2808

Utilice array_slice()

Voici un exemple tiré du Manuel PHP : array_slice

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

Il y a seulement un petit problème

Si les indices de tableau sont significatifs pour vous, rappelez-vous que array_slice va réinitialiser et réorganiser les numérique les indices des tableaux. Vous avez besoin des preserve_keys réglé sur true pour éviter cela. (4ème paramètre, disponible depuis 5.0.2).

Exemple :

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

Sortie :

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

34voto

codaddict Points 154968

Vous pouvez utiliser array_slice comme :

$sliced_array = array_slice($array,0,$N);

12voto

Fanis Points 3950

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

7voto

Star Points 2247

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));
?>

5voto

Alon Gouldman Points 363

Si vous voulez obtenir les N premiers éléments et aussi pour le retirer du tableau, vous pouvez utiliser array_splice() (notez le "p" dans "splice") :

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

utilisez-le comme ça : $array_without_n_elements = array_splice($old_array, 0, N)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X