Jump to content
gabrielfalieri

Como pegar o penúltimo e antipenultímo item de um array

Recommended Posts

só contar a quantidade de elementos e passar essa quantidade menos a quantidade a ser retirada do final

$total = count($nome_array);

$pen = $nome_array[$total - 2];
$antpen = $nome_array[$total - 3];

 

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites

Para acrescentar: 

$numeros = [1,2,3,4,5];

$penultimoEantePenultimo = array_slice($numeros, -3, -1); 
# Retornara um novo array, com as posições desejadas

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

  • +1 4

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By _FelipeOlvr
      Talvez seja simples, ou não. Não sei.
      Mas gostaria de um esclarecimento/luz de gente que já tem bagagem na área. Ficarei muito agradecido pela informação.
       
      Dei umas pesquisadas por ai, e fiz testes com as duas maneiras que achei ( até agora ):
       
      file_get_contents ( 'http://......' ) ;
      curl () ;
       
      Pergunta: 
       
      Existem outras maneiras de consumir API via PHP ? Quais ?
      Essas duas aí estão corretas?
    • By santans
      <?php if(isset($_post['name']) && !empty($_post['name'])){ $nome = addslashes($_post['name']); $email = addslashes($_post['email']); $mensagem = addslashes($_post['mesage']); $to = "gabriel@symmetrycorp.com.br"; $subjet = "Formulario - Contato SITE"; $body = "Nome: ".$nome. "\r\n". "E-mail: ".$email. "\r\n". "Mensagem: ".$mesage. "\n"; $header = "From: gabriel@symmetrycorp.com.br "."\r\n"."Replay-to:".$email."\r\n"."X=Mailer:php/".phpversion(); if(mail($to, $subject, $body, $header)){ echo("E-mail enviado com sucesso"); }else{ echo("O e-mail não pode ser enviado"); } } ?> Gostaria de ajudar para conferir esse código para envio de email, quero ter certeza que não há nenhum erro de escrita do código...
    • By Masant12
      Por favor, estou tendo dificuldades, alguém poderia me ajudar, gostaria de saber como posso fazer um sistema de reserva e se isso é possível, pois não encontrei nem um material sobre isso na internet.
    • By michael450
      Senhores, boa tarde.
       
      Estou com um probleminha... rss', preciso fazer a listagem de uma função da biblioteca "SPED-NFe"   na qual consulto quais as NFe que emitiram contra meu CNPJ, porém o ele executa toda a função e depois me trás o resultado, eu gostaria de trazer o resultado instantaneamente, como se fosse uma atualização segundo a segundo.
       
       
      Essas informações não são salvas em DB, é apenas para consulta.
      Se alguém puder ajudar serei muito grato,
       
      Abraço.
       
      Michael Douglas
    • By D2th3
      Pessoal,

      Sou intermediário em PHP e estou estudando OO. Vi exemplos de do MVC Pattern usando template view contudo de simples substituição do marcador pelos dados. Eu gostaria que você me pudessem indicar um material de estudo, exemplos de código de um Model, Controller e View que carregasse a template e exibisse, contudo dentro dessa template existisse condicionais e loops como marcadores a serem processados pelo PHP.
       
      Agradeço a ajuda aos meus estudos.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.