PHP 8.6.0 RC3 available for testing

min

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

min — El valor más pequeño

Descripción

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

Firma alternativa (no soportada con argumentos nombrados):

function min(array $value_array): mixed

Si el primer y único parámetro es un array, min() retornará el valor más pequeño contenido en el array. Si el primer parámetro es un entero, una cadena o un número decimal, deben proporcionarse al menos dos parámetros y min() retornará el más pequeño de estos valores.

Nota:

Los valores de diferentes tipos serán comparados utilizando las reglas de comparación estándar. Por ejemplo, cuando un string no numérico se compara con un int, el int se convierte a string y los valores se comparan como cadenas; antes de PHP 8.0.0, el string se convertía a int. Varios string no numéricos también se comparan como cadenas. El valor retornado será del mismo tipo que el original y ninguna conversión de tipo será aplicada.

Precaución

Tenga cuidado al pasar argumentos con tipos diferentes, ya que min() puede producir resultados impredecibles.

Parámetros

value

Cualquier valor comparable.

values

Cualquier valor comparable.

value_array

Un array que contiene los valores.

Valores devueltos

La función min() retorna el valor del parámetro considerado como "inferior" según la comparación estándar. Si varios valores de tipos diferentes son evaluados como iguales (i.e. 0 y false), el primero proporcionado a la función será retornado.

Errores/Excepciones

Si se pasa un array vacío, la función min() lanza una ValueError.

Historial de cambios

Versión Descripción
8.0.0 min() ahora lanza una ValueError en caso de fallo; previamente, false era retornado y un error E_WARNING era emitido.
8.0.0 Como las comparaciones entre las cadenas y los números han sido cambiadas, min() ya no retorna un valor diferente basado en el orden de los argumentos en estos casos.

Ejemplos

Ejemplo #1 Ejemplo con min()

<?php
echo min(2, 3, 1, 6, 7), PHP_EOL;  // 1
echo min(array(2, 4, 5)), PHP_EOL; // 2

// 'hello' es un string no numérico, por lo que -1 se convierte en el string "-1"
// y los valores se comparan como cadenas: "-1" es menor que "hello"
echo min('hello', -1), PHP_EOL;    // -1

// Con varios arrays de diferentes tamaños, min retorna el más corto
$val = min(array(2, 2, 2), array(1, 1, 1, 1)); // array(2, 2, 2)
var_dump($val);

// Varios arrays del mismo tamaño son comparados desde la izquierda hacia la derecha,
// por lo tanto, en nuestro ejemplo: 2 == 2, pero 4 < 5
$val = min(array(2, 4, 8), array(2, 5, 1)); // array(2, 4, 8)
var_dump($val);

// Si se proporciona un array y un no-array, el array nunca será retornado
// ya que las comparaciones tratan los arrays como mayores que cualquier valor
// De los valores restantes, 42 se convierte en el string "42" al compararse con el
// string no numérico 'string', y "42" es menor que "string"
$val = min('string', array(2, 5, 7), 42);   // 42
var_dump($val);

// Si un argumento es NULL o un booleano, será comparado con
// otras valores utilizando la regla FALSE < TRUE según los otros
// tipos proporcionados. En el ejemplo de abajo, tanto -10 como 10 son tratados
// como valiendo TRUE en la comparación
$val = min(-10, FALSE, 10); // FALSE
var_dump($val);

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

// Por otro lado, 0 es tratado como valiendo FALSE, por lo tanto, es "más pequeño que" TRUE
$val = min(0, TRUE); // 0
var_dump($val);
?>

Véase también

  • max() - El valor más grande
  • count() - Cuenta todos los elementos de un array o en un objeto Countable

+add a note

User Contributed Notes 2 notes

up
11
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
3
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 !
To Top