Fatiando arrays no PHP
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:
