Jump to content

matheus.leite

Members
  • Content count

    2
  • Joined

  • Last visited

Community Reputation

0 Comum

About matheus.leite

  • Birthday 12/17/1999

Informações Pessoais

  • Sexo
    Masculino
  • Localização
    Maringá-PR
  • Interesses
    PHP - SQL - Docker
  1. matheus.leite

    Alterar posição de arrays

    Prontinho, perdão! xD
  2. matheus.leite

    Alterar posição de arrays

    Boa tarde pessoal ! Sou novo aqui no forum, então se eu postar algo errado me perdoe. Amigos, sou novo com php e estou tendo problemas em achar uma solução. Tenho um array: $arrayCarro = array( array( "Cor"=>$gol->getCor(), "Marca"=>$gol->getMarca(), "Modelo"=>$gol->getModelo(), "Ano"=>$gol->getAno() ), array( "Cor"=>$fusca->getCor(), "Marca"=>$fusca->getMarca(), "Modelo"=>$fusca->getModelo(), "Ano"=>$fusca->getAno() ), array( "Cor"=>$tg->getCor(), "Marca"=>$tg->getMarca(), "Modelo"=>$tg->getModelo(), "Ano"=>$tg->getAno() ) ); e eu passo ele para um objeto do tipo 'Corrida', até ai tudo bem. Porém eu tenho uma function chamada 'ultrapassagem' e não faço a menor ideia de como poderia, de fato, fazer essa "ultrapassagem". Este é o 'index.php': <?php require 'classes/Carro.php'; require 'classes/Corrida.php'; $gol = new Carro(); $fusca = new Carro(); $tg = new Carro(); $gol->setCor("Rosa"); $gol->setMarca("Wolks"); $gol->setAno(2018); $gol->setModelo("Sedan"); $fusca->setCor("Azul"); $fusca->setMarca("Wolks"); $fusca->setAno(2018); $fusca->setModelo("4X4"); $tg->setCor("vermelho"); $tg->setMarca("TG sedan"); $tg->setAno(2098); $tg->setModelo("Flat"); $arrayCarro = array( array( "Cor"=>$gol->getCor(), "Marca"=>$gol->getMarca(), "Modelo"=>$gol->getModelo(), "Ano"=>$gol->getAno() ), array( "Cor"=>$fusca->getCor(), "Marca"=>$fusca->getMarca(), "Modelo"=>$fusca->getModelo(), "Ano"=>$fusca->getAno() ), array( "Cor"=>$tg->getCor(), "Marca"=>$tg->getMarca(), "Modelo"=>$tg->getModelo(), "Ano"=>$tg->getAno() ) ); $corrida = new Corrida($arrayCarro); $corrida->posicaoCarro(); Esta é a Classe Corrida: <?php class Corrida { private $arrayCarros; public function __construct($arrayCarros) { $this->arrayCarros = $arrayCarros; if(count($arrayCarros) > 0) { echo 'A corrida pode começar pois existe mais de um carro !'.PHP_EOL; } else { echo 'A corrida não pode começar pois existe apenas um carro :('.PHP_EOL; exit; } } public function iniciarCorrida() { echo 'Começando a corrida ...'.PHP_EOL; echo '1, 2, 3 e JÁ!!.' .PHP_EOL; echo '- A corrida começou ! Confira a posição inicial de cada carro: '.PHP_EOL; echo PHP_EOL; $this->posicaoCarro(); } public function ultrapassagem() { /*Aqui eu tentei fazer algo, porem ele apenas retira o último elemento do array e o avança para direita, foi o mais próximo que consegui de uma 'Ultrapassagem' */ $quantidadeCarros = count($this->arrayCarros); $auxiliar = $this->arrayCarros[$quantidadeCarros - 1]; for ($i = $quantidadeCarros -1; $i > 0 ; $i--) { $this->arrayCarros[$i] = $this->arrayCarros[$i -1]; } $this->arrayCarros[0] = $auxiliar; echo 'Aconteceu uma ultrapassagem'.PHP_EOL; print_r($this->arrayCarros); } //Apenas uma função para 'melhorar' a exibição dos arrays. public function posicaoCarro() { $i = 1; foreach ($this->arrayCarros as $key => $value){ echo 'Posição ['. $i++."] => "; print_r("Marca: " . $value['Marca'] . ", "); print_r("Modelo: " . $value['Modelo'] . ", "); print_r("Ano: " . $value['Ano'] . " "); print_r("Cor: " . $value['Cor'] . " " .PHP_EOL); echo PHP_EOL; } } OBS: Existem N carros. Um carro só pode passar o carro que esta na sua frente, por ex: Carro[1] pode ultrapassar o Carro[0], porém o Carro [2] não pode ultrapassar o Carro[0], apenas o Carro[1]. Após a ultrapassagem a lista dos carros deve ser reordenada. Alguém poderia me ajudar ? Desde já agradeço !
×

Important Information

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