W3docs

max()

Aprenda sobre a função max() no PHP, usada para encontrar o maior valor em um array ou em um conjunto de valores.

A função max() do PHP retorna o maior valor de uma lista de argumentos ou de um único array. É uma das formas mais comuns de encontrar o máximo sem precisar escrever um loop manualmente. Este capítulo aborda os dois estilos de chamada, como valores de diferentes tipos são comparados, os casos especiais que costumam causar confusão e quando usar max() em vez de uma alternativa.

Sintaxe

max() aceita duas formas distintas de chamada:

// Form 1: two or more values
max(mixed $value1, mixed $value2, mixed ...$values): mixed

// Form 2: a single array
max(array $value_array): mixed

Em ambas as formas, o tipo de retorno corresponde ao tipo do valor que "vence" a comparação — passe inteiros e você receberá um inteiro de volta; passe strings e receberá uma string.

Encontrando o Maior Valor em um Array

Quando você passa um único array, max() retorna seu maior elemento:

php— editable, runs on the server

Isso também funciona com arrays associativos. As chaves são ignoradas; apenas os valores são comparados, e o valor (não a chave) é retornado:

<?php
$prices = ["apple" => 1.20, "pear" => 0.95, "mango" => 2.40];

echo max($prices); // 2.4
?>

Comparando um Conjunto de Valores

Se você já tem variáveis separadas, passe-as diretamente em vez de construir um array. Esta forma aceita qualquer número de argumentos:

<?php
echo max(10, 42, 7);        // 42
echo "\n";
echo max(3, 9, 9, 1);       // 9 — ties simply return the value
?>

Isso é útil para limitar um número a um valor mínimo, um padrão frequente em paginação e manipulação de formulários:

<?php
$requestedPage = -3;

// Never let the page number drop below 1
$page = max(1, $requestedPage);

echo $page; // 1
?>

Como max() Compara Valores

max() usa as regras de comparação padrão do PHP, portanto o resultado depende dos tipos envolvidos.

  • Números são comparados numericamente: max(2, 10) é 10.
  • Strings são comparadas alfabeticamente (e com distinção entre maiúsculas e minúsculas — letras maiúsculas aparecem antes das minúsculas): max("apple", "banana", "cherry") é "cherry".
  • String e número misturados: uma string não numérica é tratada como maior que 0 no PHP 8, então max(0, "hello") retorna "hello". Evite misturar tipos quando possível — as regras são fáceis de interpretar errado.
  • Arrays são comparados primeiro pelo comprimento, depois elemento por elemento, e um array sempre é considerado maior que um escalar.
<?php
// Arrays of equal length: compared element by element
var_dump(max([1, 5], [2, 1]));
// Returns [2, 1] because the first element 2 > 1
?>

Casos Especiais e Armadilhas

  • Array vazio: max([]) lança um ValueError no PHP 8 (emitia um aviso e retornava false no PHP 7). Verifique se a entrada não está vazia antes de chamá-la.
  • Um único argumento não-array é inválido — max(5) gera um erro. Use max(5, $other) ou max([5]).
  • Valores NAN tornam o resultado imprevisível; filtre-os primeiro.
  • Empates retornam o primeiro valor vencedor encontrado, então o resultado é estável, mas a chave original é perdida.

Funções Relacionadas

  • min() — a função oposta, retorna o menor valor.
  • sort() — ordena um array inteiro quando você precisa de todos os elementos ordenados, não apenas o extremo.
  • array_sum() — soma todos os elementos.
  • count() — conta os elementos, útil para proteger max() contra arrays vazios.

Conclusão

max() é a forma concisa e legível de extrair o maior valor de um conjunto de argumentos ou de um array, e também serve como um limitador limpo (max(1, $n)). Mantenha os valores do mesmo tipo, proteja-se contra arrays vazios no PHP 8 e recorra a min() quando precisar do outro extremo do intervalo.

Prática

Prática
O que a função max() faz no PHP?
O que a função max() faz no PHP?
Was this page helpful?