min / max în PHP

Returnează cea mai mică (min) sau cea mai mare valoare (max) dintre mai multe valori sau dintr-un tablou.

Sintaxă
min(mixed $value, mixed ...$values): mixed

Ce face min / max

min și max primesc fie mai multe valori separate prin virgulă, fie un singur tablou. Returnează valoarea, nu poziția ei.

Sunt utile și pentru a limita o valoare între două margini: max(1, min($pagina, $ultimaPagina)) ține numărul paginii între 1 și ultima pagină.

Parametri

Parametru Descriere
$value, ...$values Valorile comparate sau un singur tablou cu valori.

Ce returnează

Cea mai mică, respectiv cea mai mare valoare, cu tipul ei original.

Exemple

Exemplul 1: Valori separate și tablou

<?php
echo min(7, 3, 9) . "\n";
echo max([120, 340, 210]) . "\n";
var_dump(max(1, "2", 3.5));

Rezultat

3
340
float(3.5)

Exemplul 2: Cel mai ieftin produs

<?php
$preturi = ["Mouse" => 80, "Cablu" => 15, "Monitor" => 900];

$minim = min($preturi);
echo array_search($minim, $preturi) . " costă $minim lei";

Rezultat

Cablu costă 15 lei

Exemplul 3: Limitarea unei valori între două margini

<?php
$ultimaPagina = 5;

foreach ([-2, 3, 99] as $pagina) {
    echo max(1, min($pagina, $ultimaPagina)) . "\n";
}

Rezultat

1
3
5

Greșeli frecvente

  • Dai un tablou gol. În PHP 8 primești ValueError: min(): Argument #1 ($value) must contain at least one element. Verifică înainte cu count sau empty.
  • Amesteci texte și numere. Comparația dintre text și număr poate da rezultate neașteptate: min("abc", 0) returnează 0.

Comenzi înrudite

  • sort: Sortează elementele unui tablou crescător. Există și variante pentru descrescător și pentru chei.
  • array_sum / array_product: Adună toate valorile unui tablou (array_sum) sau le înmulțește (array_product).
  • abs: Returnează valoarea absolută a unui număr, adică numărul fără semnul minus.