Gostou do nosso conteúdo? Te ajudou?
Nos ajude também! Faça um PIX, de qualquer valor:
programacao.progressiva@gmail.com

Três números em Ordem Crescente

"Faça um script que leia três números inteiros e mostre eles na ordem crescente"

Estudar pela Apostila de PHP

Trocar valor de duas variáveis

Antes de resolvermos esse script, precisamos aprender um algoritmo simples, de trocar o valor de duas variáveis.

Vamos supor que:
$a = 1;
$b = 2;

Queremos que fique:
$a = 2;
$b = 1;

O primeiro passo é faze $a receber valor de $b, né?
$a = $b;

Agora só fazer o contrário, fazer $b receber o valor de $a.
$b = $a;

Simples, não?
Não!

A segunda expressão tá errada, pois agora o valor de $a mudou pouco antes!

A solução pra isso é usar uma variável temporária.
O jeito certo de inverter valores é:
$temp = $a;
$a = $b;
$b = $a;

Prontinho, aquele valor de $a que tínhamos no começo fica armazenado na variável $tempo.
Depois, o $b pega o valor desse $temp

Três Números em Ordem Crescente

Vamos pegar três números de um formulário HTML.

Inicialmente, dizemos que o menor valor é o primeiro, o valor do meio é o segundo número e o maior número é o terceiro digitado:
$menor = $_GET['numero1'];
$meio = $_GET['numero2'];
$maior = $_GET['numero3'];

Agora vem a lógica.
Vamos pegar as variáveis duas a duas.

Primeiro pegamos as duas primeiras: $menor e $meio
Se o valor de $meio for menor que $menor, devemos inverter o valor delas!

Agora vamos comparar $menor e $maior
Se $maior for menor que $menor, invertermos as variáveis.

Por fim, comparamos $meio e $maior
Se $maior for menor que $meio, devemos inverter os valores.

Veja como ficou nosso código:
<html>
 <head>
  <title>Apostila PHP Progressivo</title>
 </head>
 <body>
 <form action="" method="get">
  Numero 1:  <input type="text" name="numero1" /><br />
  Numero 2:  <input type="text" name="numero2" /><br />
  Numero 3:  <input type="text" name="numero3" /><br />
  <input type="submit" name="submit" value="Testar" />
 </form> 
 <?php 
  $menor = $_GET['numero1'];
  $meio = $_GET['numero2'];
  $maior = $_GET['numero3'];

  if($meio < $menor){
   $temp=$menor;
   $menor=$meio;
   $meio=$temp;
  }
  
  if($maior < $menor){
   $temp=$menor;
   $menor=$maior;
   $maior=$temp;
  }
  
  if($maior < $meio){
   $temp=$meio;
   $meio=$maior;
   $maior=$temp;
  }
  
  echo "$menor < $meio < $maior";
 ?>
 </body>
</html>