min

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

min β€” Находит наимСньшСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

ОписаниС

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

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Π°Ρ сигнатура (Π½Π΅ поддСрТиваСтся с ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ):

function 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), PHP_EOL; // 1
echo min(array(2, 4, 5)), PHP_EOL; // 2

// Π—Π΄Π΅ΡΡŒ сравниваСтся -1 < 0, поэтому -1 наимСньшСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅
echo min('hello', -1), PHP_EOL; // -1

// ΠŸΡ€ΠΈ сравнСнии массивов Ρ€Π°Π·Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹ функция min Π²Π΅Ρ€Π½Ρ‘Ρ‚ самый ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ
$val = max(array(2, 2, 2), array(1, 1, 1, 1)); // array(2, 2, 2)
var_dump($val);

// ΠœΠ°ΡΡΠΈΠ²Ρ‹ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹ ΡΡ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΠΎ значСниям слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ,
// поэтому Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅: 2 == 2, Π½ΠΎ 4 < 5
$val = min(array(2, 4, 8), array(2, 5, 1)); // array(2, 4, 8)
var_dump($val);

// ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ массива ΠΈ значСния Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°
// массив Π½Π΅ возвращаСтся, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ сравнСниС считаСт массив бо́льшим Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ
$val = min('string', array(2, 5, 7), 42); // string
var_dump($val);

// Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ значСниями ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Ρ‘Ρ‚ ΠΏΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Ρƒ FALSE < TRUE ΠΈ NULL == FALSE,
// Ссли ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Ρ€Π°Π²Π΅Π½ NULL ΠΈΠ»ΠΈ логичСскому Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ,
// нСзависимо ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²
// Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ -10 ΠΈ 10 трактуСтся ΠΊΠ°ΠΊ TRUE
$val = min(-10, FALSE, 10); // FALSE
var_dump($val);

$val = min(-10, NULL, 10); // NULL
var_dump($val);

// Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0 трактуСтся ΠΊΠ°ΠΊ FALSE, поэтому 0 «мСньшС» TRUE
$val = min(0, TRUE); // 0
var_dump($val);

?>

Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅

  • max() - Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ наибольшСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅
  • count() - ΠŸΠΎΠ΄ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ количСство элСмСнтов Π² массивС ΠΈΠ»ΠΈ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅ Countable
οΌ‹Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ 2 notes

up
8
volch5 at gmail dot com ΒΆ
12 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 ΒΆ
20 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 !