Min: примеры (PHP)
min(array|mixed $value, mixed ...$values): mixedОсновы функции min
Функция min() находит наименьшее значение среди переданных аргументов. Если первый аргумент является массивом, функция возвращает минимальное значение из этого массива.
Функция поддерживает два варианта передачи параметров:
- Вариант сравнения значений:
min(mixed $value, mixed ...$values): mixed. Сравнивает два или более скалярных значений. - Вариант с массивом:
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() имеет идентичный синтаксис, но возвращает наибольшее значение. Выбор между min() и max() зависит от задачи.
Позволяет реализовать собственную логику поиска минимального значения с помощью callback-функции. Используется, когда стандартное сравнение не подходит.
Комбинация 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 функция 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
$prices = ['apple' => 50, 'banana' => 30, 'cherry' => 70];
$minPrice = min($prices);
echo $minPrice;
?>30
<?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
<?php
$values = [15, 22, 8, 19];
echo min(...$values);
?>8
Сама функция min() не возвращает ключ. Для этого используют array_keys() и array_search().
<?php
$data = ['a' => 10, 'b' => 5, 'c' => 20];
$minValue = min($data);
$key = array_search($minValue, $data);
echo "Ключ: $key, Значение: $minValue";
?>Ключ: b, Значение: 5