web-dev-qa-db-fra.com

Renvoyer les x premiers éléments du tableau

Je veux renvoyer les 5 premiers éléments du tableau. Comment puis-je faire ceci?

126
O..

array_slice retourne une tranche d'un tableau

$sliced_array = array_slice($array, 0, 5)

est le code que vous voulez dans votre cas pour renvoyer les cinq premiers éléments

254
knittl

array_splice - Supprime une partie du tableau et la remplace par quelque chose d'autre:

$input = array(1, 2, 3, 4, 5, 6);
array_splice($input, 5); // $input is now array(1, 2, 3, 4, 5)

De PHP manuel:

array array_splice ( array &$input , int $offset [, int $length = 0 [, mixed $replacement]])

Si length est omis, supprime tout du décalage à la fin du tableau . Si length est spécifié et qu'il est positif, de nombreux éléments seront supprimés. Si la longueur est spécifiée et est négative, la fin de la partie supprimée sera celle de nombreux éléments de la fin du tableau. Conseil: pour tout supprimer du décalage à la fin du tableau lorsque le remplacement est également spécifié, utilisez count ($ input) pour la longueur.

8
Andrejs Cainikovs

Si vous voulez seulement sortir les 5 premiers éléments, vous devriez écrire quelque chose comme:

<?php

  if (!empty ( $an_array ) ) {

    $min = min ( count ( $an_array ), 5 );

    $i = 0;

    foreach ($value in $an_array) {

      echo $value;
      $i++;
      if ($i == $min) break;

    }

  }

?>

Si vous voulez écrire une fonction qui retourne une partie du tableau, vous devez utiliser array_slice:

<?php

  function GetElements( $an_array, $elements ) {
    return array_slice( $an_array, 0, $elements );
  }

?>
1
Anax

Vous pouvez utiliser la fonction array_slice, mais utiliserez-vous une autre valeur? ou seulement les 5 premiers? parce que si vous n'utilisez que les 5 premiers, vous pouvez utiliser LIMIT sur SQL.

0
Cesar