W3docs

min()

Функция min() в PHP возвращает наименьшее значение из массива или набора аргументов. Узнайте синтаксис, примеры и особые случаи.

Функция min() в PHP возвращает наименьшее значение из списка аргументов или из одного массива. Это встроенная математическая функция, поэтому вам никогда не нужно писать собственный цикл для поиска наименьшего элемента. На этой странице рассматриваются оба стиля вызова, то, как min() сравнивает различные типы данных, и граничные случаи, которые вызывают затруднения.

Синтаксис

min() принимает две различные сигнатуры вызова:

// 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

В обоих случаях возвращаемое значение — это фактический элемент, который оказался наименьшим (с исходным типом), а не его копия или индекс.

Передача одного массива

Наиболее распространённый вариант использования — передать min() один массив и позволить ей найти наименьший элемент:

php— editable, runs on the server

min() обходит весь массив и возвращает наименьший элемент — в данном случае 1.

Передача нескольких аргументов

Значения также можно передавать непосредственно как отдельные аргументы. Это удобно, когда числа ещё не собраны в массив:

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

Оба варианта дают одинаковый результат; выбирайте тот, который соответствует имеющимся данным.

Сравнение строк

min() не ограничена числами. Со строками она использует стандартные правила сравнения PHP, поэтому обычные слова сортируются в алфавитном порядке:

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

Возвращается "apple", поскольку оно стоит первым по алфавиту.

Сравнение смешанных типов

При использовании значений разных типов min() опирается на операторы сравнения PHP. Начиная с PHP 8, число, сравниваемое с нечисловой строкой, сравнивается как строка, что изменило некоторые прежние результаты:

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

Если вы намеренно смешиваете типы, явно указывайте ожидаемое поведение — сравнения между типами являются распространённым источником неочевидных ошибок. При возникновении сомнений нормализуйте данные к одному типу.

Отрицательные числа и числа с плавающей точкой

min() обрабатывает отрицательные числа и числа с плавающей точкой именно так, как вы и ожидаете, при этом сохраняя тип возвращаемого значения:

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

Сравнение массивов

Если каждый аргумент сам является массивом, min() сравнивает их: массивы с меньшим количеством элементов считаются меньшими, а массивы одинаковой длины сравниваются поэлементно слева направо:

<?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]
?>

Внимание: пустые массивы

Вызов min() на пустом массиве вызывает ValueError в PHP 8 (в более ранних версиях выдавалось предупреждение и возвращалось false). Всегда защищайтесь от пустых входных данных:

<?php
$values = [];

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

var_dump($lowest); // NULL
?>

Когда использовать min()

  • Поиск самой низкой цены, наиболее ранней даты (в виде временной метки) или наименьшего измерения в наборе данных.
  • Ограничение значения верхней границей: min($value, $maxAllowed) не позволяет $value превысить $maxAllowed.
  • Всякий раз, когда иначе пришлось бы писать цикл только для отслеживания наименьшего элемента.

Для обратной операции смотрите max(). Чтобы узнать больше о работе со структурами данных, с которыми работает min(), смотрите PHP Arrays и Sorting Arrays.

Заключение

min() — небольшая, но часто используемая вспомогательная функция: передайте ей массив или список значений, и она вернёт наименьшее из них, сохраняя исходный тип. Помните о двух стилях вызова, будьте внимательны при сравнении разных типов и защищайтесь от пустых массивов — тогда эта функция избавит вас от написания ручных циклов сравнения.

Практика

Практика
Что делает функция min() в PHP?
Что делает функция min() в PHP?
Was this page helpful?