Luego de investigar con especialistas en el tema, programadores de deferentes ramas y maestros hemos dado con la respuesta al problema y la dejamos plasmada en esta publicación.
Solución:
Citando el página de manual de array_search()
:
Devuelve el key para aguja si se encuentra en el array,
FALSE
de lo contrario.
Lo que significa que tienes que usar algo como:
$found = array_search($needle, $haystack);
if ($found !== false)
// do stuff
// when found
else
// do different stuff
// when not found
Tenga en cuenta que usé el !==
operador, que hace una comparación sensible al tipo; consulte Operadores de comparación, Malabarismo de tipos y Conversión a booleano para obtener más detalles al respecto 😉
si solo está comprobando si el valor existe, in_array es el camino a seguir.
Según la documentación oficial en http://php.net/manual/en/function.array-search.php:
Advertencia Esta función puede devolver un valor booleano FALSO, pero también puede devolver un valor no booleano que se evalúa como FALSO. Lea la sección sobre valores booleanos para obtener más información. Utilice el operador === para probar el valor de retorno de esta función.
Vea este ejemplo:
$foundKey = array_search(12345, $myArray);
if(!isset($foundKey))
// If $myArray is null, then $foundKey will be null too.
// Do something when both $myArray and $foundKey are null.
elseif ($foundKey===false)
// $myArray is not null, but 12345 was not found in the $myArray array.
else
// 12345 was found in the $myArray array.
valoraciones y reseñas
Agradecemos que desees añadir valor a nuestro contenido contribuyendo tu veteranía en las ilustraciones.