PHP 8.4.3 Released!

min

(PHP 4, PHP 5, PHP 7, PHP 8)

minНаходит наименьшее значение

Описание

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

Альтернативная сигнатура (не поддерживается с именованными аргументами):

min(array $value_array): mixed

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

Замечание:

Функция сравнивает значения разных типов по стандартным правилами сравнения. Наример, нечисловая строка (string) будет сравниваться с целым числом (int) так, как если бы значение строки равнялось 0, но нечисловые строки (string) будут сравниваться в алфавитно-цифровом порядке. Возвращаемое значение сохранит исходный тип без преобразования.

Предостережение

При передаче аргументов разных типов соблюдают осторожность, поскольку при сравнении разнотипных значений результат функции min() непредсказуем.

Список параметров

value

Произвольное значение, доступное для сравнения.

values

Произвольные значения, доступные для сравнения.

value_array

Массив значений.

Возвращаемые значения

Функция min() возвращает значение параметра, которое считает «наименьшим» по правилам сравнения. Функция вернёт значение первого аргумента, если оценит значения разных типов наподобие 0 и "abc" как равные.

Ошибки

Функция min() выбрасывает ошибку ValueError при передаче пустого массива.

Список изменений

Версия Описание
8.0.0 Функция min() теперь выбрасывает ошибку ValueError, если возникла ошибка; раньше возвращалось значение false и выдавалась ошибка уровня E_WARNING.
8.0.0 При сравнении разнотипных значений функция min() теперь возвращает наименьшее значение по правилам сравнения, а не на основании порядка аргументов, поскольку правила сравнения строк с числами изменили.

Примеры

Пример #1 Пример использования функции min()

<?php

echo min(2, 3, 1, 6, 7); // 1
echo min(array(2, 4, 5)); // 2

// Здесь сравниваются -1 < 0, поэтому -1 меньше
echo min('hello', -1); // -1

// При сравнении массивов разной длины функция min вернёт самый короткий
$val = max(array(2, 2, 2), array(1, 1, 1, 1)); // array(2, 2, 2)

// Набор массивов одинаковой длины сравнивается по значениям слева направо,
// так в примере: 2 == 2, но 4 < 5
$val = min(array(2, 4, 8), array(2, 5, 1)); // array(2, 4, 8)

// При передаче массива и значения другого типа
// массив не возвращается, поскольку сравнение считает массив бо́льшим значением
$val = min('string', array(2, 5, 7), 42); // string

// Сравнение с другими значениями произойдёт по правилу FALSE < TRUE и NULL == FALSE,
// если какой-либо аргумент равен NULL или логическому значению,
// независимо от типа аргументов
// В следующем примере -10 и 10 трактуется как TRUE
$val = min(-10, FALSE, 10); // FALSE
$val = min(-10, NULL, 10); // NULL

// Значение 0 трактуется как FALSE, поэтому 0 «меньше» TRUE
$val = min(0, TRUE); // 0

?>

Смотрите также

  • max() - Возвращает наибольшее значение
  • count() - Подсчитывает количество элементов в массиве или в объекте Countable

Добавить

Примечания пользователей 2 notes

up
6
volch5 at gmail dot com
10 years ago
min() (and max()) on DateTime objects compares them like dates (with timezone info) and returns DateTime object.
<?php
$dt1
= new DateTime('2014-05-07 18:53', new DateTimeZone('Europe/Kiev'));
$dt2 = new DateTime('2014-05-07 16:53', new DateTimeZone('UTC'));
echo
max($dt1,$dt2)->format(DateTime::RFC3339) . PHP_EOL; // 2014-05-07T16:53:00+00:00
echo min($dt1,$dt2)->format(DateTime::RFC3339) . PHP_EOL; // 2014-05-07T18:53:00+03:00
?>

It works at least 5.3.3-7+squeeze17
up
2
Anonymous
18 years ago
NEVER EVER use this function with boolean variables !!!
Or you'll get something like this: min(true, 1, -2) == true;

Just because of:
min(true, 1, -2) == min(min(true,1), -2) == min(true, -2) == true;

You are warned !
To Top