W3docs

min()

A função min() no PHP retorna o menor valor de um array ou de uma lista de argumentos. Veja a sintaxe, exemplos e casos especiais.

A função min() no PHP retorna o menor valor de uma lista de argumentos ou de um único array. É uma função matemática nativa, portanto você nunca precisa escrever seu próprio loop para encontrar o menor item. Esta página aborda os dois estilos de chamada, como min() compara diferentes tipos de dados e os casos especiais que costumam causar confusão.

Sintaxe

min() aceita duas assinaturas de chamada distintas:

// 1. A single array — returns its lowest element
min(array $values): mixed

// 2. Two or more separate arguments — returns the lowest of them
min(mixed $value1, mixed $value2, mixed ...$values): mixed

Em ambos os casos, o valor retornado é o próprio elemento que era o menor (com seu tipo original), não uma cópia ou um índice.

Passando um único array

O uso mais comum é passar um array para min() e deixar que ela encontre o menor elemento:

php— editable, runs on the server

min() percorre todo o array e retorna o menor elemento — neste caso, 1.

Passando vários argumentos

Você também pode passar valores diretamente como argumentos separados. Isso é útil quando os números ainda não estão reunidos em um array:

<?php
echo min(2, 3, 1, 6, 7); // 1
?>

Ambas as formas produzem o mesmo resultado; escolha a que melhor se adapta aos dados que você já tem.

Comparando strings

min() não se limita a números. Com strings, ela utiliza as regras de comparação padrão do PHP, portanto palavras simples são ordenadas alfabeticamente:

<?php
echo min("apple", "banana", "cherry"); // apple
?>

"apple" é retornada porque vem primeiro em ordem alfabética.

Como tipos mistos são comparados

Quando os valores são de tipos diferentes, min() depende dos operadores de comparação do PHP. A partir do PHP 8, um número comparado com uma string não numérica é comparado como string, o que alterou alguns resultados de versões anteriores:

<?php
var_dump(min(0, "hello")); // int(0)  (PHP 8+)
?>

Se você misturar tipos intencionalmente, seja explícito sobre o que espera — comparações entre tipos são uma fonte comum de bugs sutis. Na dúvida, normalize seus dados para um único tipo antes.

Números negativos e floats

min() lida com números negativos e floats exatamente como esperado, e preserva o tipo do valor que retorna:

<?php
echo min(-10, 0, 10);          // -10
var_dump(min(1.5, 2, 3));      // float(1.5) — the return keeps its float type
?>

Comparando arrays

Se todos os argumentos forem arrays, min() os compara: arrays com menos elementos são considerados menores, e arrays de tamanho igual são comparados elemento por elemento da esquerda para a direita:

<?php
// Same length, so compared element by element: 4 < 5 at index 1
var_dump(min([2, 4, 8], [2, 5, 1]));
// Returns: [2, 4, 8]
?>

Atenção: arrays vazios

Chamar min() em um array vazio lança um ValueError no PHP 8 (nas versões anteriores gerava um aviso e retornava false). Sempre proteja seu código contra entradas vazias:

<?php
$values = [];

$lowest = empty($values) ? null : min($values);

var_dump($lowest); // NULL
?>

Quando usar min()

  • Encontrar o menor preço, a data mais antiga (como timestamp) ou a menor medida em um conjunto de dados.
  • Limitar um valor a um máximo: min($value, $maxAllowed) garante que $value nunca ultrapasse $maxAllowed.
  • Sempre que você escreveria um loop apenas para rastrear o menor item.

Para a operação inversa, veja max(). Para saber mais sobre as estruturas de dados em que min() opera, veja PHP Arrays e Sorting Arrays.

Conclusão

min() é um auxiliar pequeno, mas muito utilizado: passe-lhe um array ou uma lista de valores e ela retorna o menor, mantendo o tipo original. Lembre-se dos dois estilos de chamada, fique atento às comparações entre tipos diferentes e proteja-se contra arrays vazios — assim você evita escrever loops de comparação manual.

Prática

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