2010-09-15 5 views
139

Quelle est la meilleure façon d'y parvenir?Récupère les N premiers éléments d'un tableau?

+7

Si vous avez déjà besoin de trouver une fonction pour faire quelque chose avec un tableau, rendez-vous ici: http://www.php.net/manual/fr/function.array.php et regardez les fonctions. – Galen

+12

plutôt que de venir à SO!? –

Répondre

248

Utilisez array_slice()

Voici un exemple de la PHP manual: 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 ont un sens pour vous, rappelez-vous que array_slice va réinitialiser et réorganiser les numériques index. Vous avez besoin du drapeau preserve_keys défini sur true pour éviter cela. (4ème paramètre, disponible depuis la version 5.0.2).

Exemple:

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

Sortie:

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

Wow, 3 ans d'édition :) Beau travail. – webnoob

11

Dans l'ordre actuel? Je dirais array_slice(). Comme il est une fonction intégrée, il sera plus rapide que boucle à travers le réseau tout en gardant la trace d'un indice incrémenter jusqu'à N.

21

Vous pouvez utiliser array_slice comme:

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

c'est ce que je veux exactement. Merci –

0

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