Fatiando arrays no PHP

Em: 28/04/2008 Tags: Referencie do seu blog (Trackback)

Apesar dos anos de uso da linguagem, não me lembro da última vez em que precisei pegar um pedaço exato de um array (como os N primeiros ou termos, por exemplo). Mas eis que hoje voltei a precisar disso, e isto em PHP é inválido:

$chars = array('c','a','i','o'); 
$chars[0,2];

Não importa o sentido que você possa ter pensado em atribuir à segunda linha de código, por algum motivo essa sintaxe não é suportada. Contente-se, portanto, com array_slice, que faz o mesmo serviço:

$chars = array('c','a','i','o'); 
$slice = array_slice($chars, 0, 2);
print_r($slice);

A saída do programa é bem auto-explicativa:

Array
(
    [0] => c
    [1] => a
)

A função array_slice, portanto, devolve uma fatia de um array, sem modificar o original. Caso nossa intenção seja alterar um pedaço de um array por qualquer outro valor, então podemos usar sua função irmã, array_splice:

$chars = array('c','a','i','o'); 
array_splice($chars, 0, 3, 'hell');
print_r($chars);

Esse programa terá a seguinte saída:

Array
(
    [0] => hell
    [1] => o
)

Note que array_splice irá alterar o array original.

Consulte a documentação do PHP para maiores informações:

Artigos relacionados:

Escreva um comentário (utilize o formato Markdown)