Respostas:
array_slice
retorna uma fatia de uma matriz
$sliced_array = array_slice($array, 0, 5)
é o código que você deseja no seu caso para retornar os cinco primeiros elementos
array_combine(array_slice(array_keys($array), 0, 5), array_slice($array, 0, 5))
array_slice
retorna uma fatia de uma matriz". Mas vou editar minha resposta para torná-la um pouco mais clara.
array_splice - Remova uma parte da matriz e substitua-a por outra coisa:
$input = array(1, 2, 3, 4, 5, 6);
array_splice($input, 5); // $input is now array(1, 2, 3, 4, 5)
Do manual do PHP:
array array_splice ( array &$input , int $offset [, int $length = 0 [, mixed $replacement]])
Se o comprimento for omitido, remove tudo do deslocamento até o final da matriz . Se o comprimento for especificado e for positivo, muitos elementos serão removidos. Se o comprimento for especificado e for negativo, o final da parte removida será o número de elementos do final da matriz. Dica: para remover tudo do deslocamento até o final da matriz quando a substituição também for especificada, use count ($ input) para o comprimento.
Se você quiser apenas produzir os 5 primeiros elementos, escreva algo como:
<?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;
}
}
?>
Se você deseja escrever uma função que retorna parte da matriz, use array_slice:
<?php
function GetElements( $an_array, $elements ) {
return array_slice( $an_array, 0, $elements );
}
?>
Uma maneira mais orientada a objetos seria fornecer um intervalo para o método # []. Por exemplo:
Digamos que você queira os 3 primeiros itens de uma matriz.
number = [1,2,3,4,5,6]
números [0..2] # => [1,2,3]
Digamos que você queira os primeiros x itens de uma matriz.
números [0..x-1]
O melhor deste método é que, se você pedir mais itens do que a matriz, ela simplesmente retornará a matriz inteira.
números [0..100] # => [1,2,3,4,5,6]