Obter os primeiros N elementos de uma matriz?


Respostas:


360

Use array_slice ()

Este é um exemplo do manual do PHP: array_slice

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

Existe apenas um pequeno problema

Se os índices da matriz forem significativos para você, lembre-se de que array_sliceredefinirá e reordenará os índices numéricos da matriz. Você precisa preserve_keysdefinir o sinalizador truepara evitar isso. (4º parâmetro, disponível desde 5.0.2).

Exemplo:

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

Resultado:

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


12

Na ordem atual? Eu diria array_slice () . Como é uma função integrada, será mais rápido do que percorrer a matriz, mantendo o controle de um índice incremental até N.


4

array_slice () é a melhor coisa para tentar, a seguir estão os exemplos:

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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.