Obter os primeiros N elementos de uma matriz?

207

Qual é o melhor jeito de concluir isso?

GSto
fonte
7
Se você precisar encontrar uma função para fazer algo com uma matriz, acesse aqui: php.net/manual/en/function.array.php e verifique as funções.
Galen
21
em vez de vir para SO!?
Hrishikesh Choudhari

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');
corbacho
fonte
29

Você pode usar array_slice como:

$sliced_array = array_slice($array,0,$N);
codaddict
fonte
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.

Fanis Hatzidakis
fonte
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));
?>
Estrela
fonte