(PHP 4, PHP 5, PHP 7, PHP 8)
in_array — Indica si un valor pertenece a un array
Busca needle en haystack utilizando una comparación
flexible a menos que strict sea utilizado.
needleEl valor buscado.
Nota:
Si
needlees un string, la comparación se realiza teniendo en cuenta la casilla.
haystackEl array.
strict
Si el tercer argumento strict está definido
a true entonces la función in_array() verificará también que el tipo
del argumento needle
coincide con el tipo del valor encontrado en haystack.
Nota:
Anterior a PHP 8.0.0, un
needlede tipo string no numérico coincidía de forma laxa con un valor0dehaystack, y viceversa. A partir de PHP 8.0.0, el número se convierte a string y ambos se comparan como strings, de modo que solo sigue coincidiendo una string numérica con el mismo valor.No obstante, el modo no estricto utiliza una comparación laxa, por lo que valores de tipos distintos pueden seguir considerándose iguales:
truecoincide con cualquier string evaluada como verdadera, yfalsecoincide tanto con""como con"0". A menos que se conozcan con certeza los tipos de todos los valores involucrados, se debe pasar siemprestrictpara forzar una comparación de identidad.
Ejemplo #1 Ejemplo con in_array()
<?php
$os = array("Mac", "NT", "Irix", "Linux");
if (in_array("Irix", $os)) {
echo "Got Irix";
}
if (in_array("mac", $os)) {
echo "Got mac";
}
?>La segunda condición falla, ya que in_array() es sensible a la casilla. El script devuelve:
Got Irix
Ejemplo #2 Ejemplo con in_array() y modo estricto
<?php
$a = array('1.10', 12.4, 1.13);
if (in_array('12.4', $a, true)) {
echo "'12.4' es encontrado con modo estricto\n";
}
if (in_array(1.13, $a, true)) {
echo "1.13 es encontrado con modo estricto\n";
}
?>El ejemplo anterior mostrará:
1.13 es encontrado con modo estricto
Ejemplo #3 Ejemplo con in_array() y un array como argumento
<?php
$a = array(array('p', 'h'), array('p', 'r'), 'o');
if (in_array(array('p', 'h'), $a)) {
echo "'ph' ha sido encontrado\n";
}
if (in_array(array('f', 'i'), $a)) {
echo "'fi' ha sido encontrado\n";
}
if (in_array('o', $a)) {
echo "'o' ha sido encontrado\n";
}
?>El ejemplo anterior mostrará:
'ph' ha sido encontrado 'o' ha sido encontrado