PHP 8.5.0 Alpha 1 available for testing

min

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

minEl valor más pequeño

Descripción

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

Firma alternativa (no soportada con argumentos nombrados):

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. Actualmente, una cadena no numérica será comparada con un entier, como si fuera la valor 0, pero varias chaîne de caractères no numéricas serán comparadas de forma alfanumérica. El valor actual 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 'abc'), 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

// Aquí, comparamos -1 < 0, por lo tanto, -1 es el valor más bajo
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
$val = min('string', array(2, 5, 7), 42); // string
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);
?>

Ver 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
7
volch5 at gmail dot com
11 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
19 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