Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia galera do imasters.
asicamente eu tenho um array que vem de um retorno de um form e gostaria de saber de como pegar a penúltima e a antepenúltima posição do mesmo.
Obrigado
Tenta algo assim:
<?php
$count = count($array);
for($i = 1;$i <= $count; $i++){
if($i == $count OR $i == ($count -1)){
echo $array['dado']
}
}AnthraxisBR acredito que desse seu modo fica mais lento porque vai ter que passar por todos os elementos até chegar nos três últimos. imagine uma array com milhares de elementos. do jeito que postei eu acho que fica mais rápido porque vai direto nos dois elementos desejados.
>
1 minuto atrás, marsolim disse:
AnthraxisBR acredito que desse seu modo fica mais lento porque vai ter que contar todos os elementos até chegar nos três últimos. imagine uma array com milhares de elementos. do jeito que postei eu acho que fica mais rápido porque vai direto nos dois elementos desejados.
Isso mesmo, mas se ele precisar printar esses dados, ou se os último e penúltimo forem apenas uma condição para os dois últimos serem exibidos de forma diferente ele já terá que iniciar um loop, mas se for linear apenas os dois últimos o seu exemplo é melhor realmente.
Para acrescentar:
$numeros = [1,2,3,4,5];
$penultimoEantePenultimo = array_slice($numeros, -3, -1);
print_r($penultimoEantePenultimo);
/*
Array
(
[0] => 3
[1] => 4
)A função end() faz o ponteiro interno de um array apontar para o seu último elemento, dependendo do contexto, esse é um comportanto desejável
end($numeros);
echo prev($numeros); # exibira 4
echo prev($numeros); # exibira 3
http://php.net/manual/pt_BR/function.array-slice.php
http://php.net/manual/pt_BR/function.end.php
http://php.net/manual/pt_BR/function.prev.php
só contar a quantidade de elementos e passar essa quantidade menos a quantidade a ser retirada do final