web-dev-qa-db-fra.com

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

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

184
GSto

Utilisez array_slice ()

Ceci est un exemple tiré de 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 ont une signification pour vous, rappelez-vous que array_slice réinitialisera et réordonnera les index de tableau numériques . Vous devez définir le drapeau preserve_keys 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');
321
corbacho

Vous pouvez utiliser array_slice comme:

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

Dans l'ordre actuel? Je dirais array_slice () . Comme 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 incrémenté jusqu'à N.

12
Fanis

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

si vous voulez obtenir les N premiers éléments et aussi le supprimer du tableau, vous pouvez utiliser array_splice() (notez le 'p' dans "épissure"):

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

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

1
Alon Gouldman