Min: примеры (PHP)

Изучаем функцию min() в PHP: от основ до продвинутых примеров
Раздел: Математические функции
min(array|mixed $value, mixed ...$values): mixed

Основы функции min

Назначение

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

Аргументы

Функция поддерживает два варианта передачи параметров:

  1. Вариант сравнения значений: min(mixed $value, mixed ...$values): mixed. Сравнивает два или более скалярных значений.
  2. Вариант с массивом: min(array $value_array): mixed. Находит минимальный элемент в переданном массиве.

Функция работает со значениями разных типов, используя стандартные правила сравнения PHP.

Короткие примеры использования

Сравнение чисел
<?php
echo min(2, 3, 1, 6, 7);
?>
1
Сравнение строк
<?php
echo min('hello', 'world', 'apple');
?>
apple
Использование массива
<?php
$array = [10, 5, 20, 3];
echo min($array);
?>
3
Сравнение разных типов
<?php
var_dump(min(5, '10abc'));
?>
int(5)

Похожие функции в PHP

max()

Функция max() имеет идентичный синтаксис, но возвращает наибольшее значение. Выбор между min() и max() зависит от задачи.

array_reduce()

Позволяет реализовать собственную логику поиска минимального значения с помощью callback-функции. Используется, когда стандартное сравнение не подходит.

sort() и reset()

Комбинация sort($array); $min = reset($array); находит минимальный элемент, изменяя порядок в массиве. Метод менее эффективен, чем прямая функция min().

Аналоги в других языках

Min в Python

Используется функция min() или метод min() для итерируемых объектов. В Python функция может принимать ключ для сравнения.

print(min(2, 3, 1))
print(min([10, 5, 20, 3]))
1
3

Min в Javascript

Глобальный метод Math.min(). Принимает список чисел, но не массивы напрямую. Для массива используют спред-оператор.

console.log(Math.min(2, 3, 1));
console.log(Math.min(...[10, 5, 20, 3]));
1
3

Min в MySQL

Агрегатная функция MIN() используется в SQL-запросах для нахождения минимального значения в столбце.

SELECT MIN(price) FROM products;
Возвращает наименьшую цену.

Типичные ошибки

Передача пустого массива

Функция возвращает false и вызывает предупреждение, если массив пуст.

<?php
$result = min([]);
var_dump($result);
?>
bool(false)
Warning: min(): Array must contain at least one element
Сравнение массивов

При сравнении массивов функция возвращает не интуитивный результат, так как сравнение происходит по первому элементу.

<?php
$result = min([1, 2, 3], [1, 2, 4]);
print_r($result);
?>
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
)

Изменения в новых версиях PHP

PHP 8.0

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

<?php
// PHP 7
var_dump(min(0, 'abc'));
// PHP 8
var_dump(min(0, 'abc'));
?>
PHP 7: int(0)
PHP 8: int(0) // Строка 'abc' преобразуется в 0, сравнение равных значений возвращает первый аргумент.

Расширенные примеры

Поиск минимального значения в ассоциативном массиве
Пример php
<?php
$prices = ['apple' => 50, 'banana' => 30, 'cherry' => 70];
$minPrice = min($prices);
echo $minPrice;
?>
30
Сравнение дат
Пример php
<?php
$dates = [
    new DateTime('2023-01-15'),
    new DateTime('2022-12-01'),
    new DateTime('2023-03-20')
];
$minDate = min($dates);
echo $minDate->format('Y-m-d');
?>
2022-12-01
Использование с оператором spread
Пример php
<?php
$values = [15, 22, 8, 19];
echo min(...$values);
?>
8
Возврат ключа минимального значения

Сама функция min() не возвращает ключ. Для этого используют array_keys() и array_search().

Пример php
<?php
$data = ['a' => 10, 'b' => 5, 'c' => 20];
$minValue = min($data);
$key = array_search($minValue, $data);
echo "Ключ: $key, Значение: $minValue";
?>
Ключ: b, Значение: 5

PHP min function comments

En
Min Find lowest value