Buscar una cadena de texto dentro de un array en PHP

Hoy vamos a ver, como buscar una cadena de texto dentro de un array, utilizando diferentes funciones de PHP.

Tenemos varias formas de hacerlo y que cada una nos devuelve un resultado distinto, en las primeras opciones buscamos el valor integro en los campos, y en la última opción, buscamos el termino en el array con una expresión regular.

Vamos a ver como se hace en cada caso y que es lo que devuelve cada caso.

Buscar una cadena en el array  usando array_search

En este caso, usaremos la función array_search la cual nos buscará dentro del array para ver si dentro de los campos del array se encuentra el término que buscamos.

Aquí vemos que nos mostrará que se ha encontrado el termino “Zapatillas de tenis” en la posición 1, si hubiera más de un resultado de dicha búsqueda, solo nos mostraría el primero que encontrase.

Así que si nos interesa encontrar una coincidencia y devolver la primera que encontremos, esta opción nos serviría totalmente.

Buscar una cadena en el array  usando in_array

En esta opción, lo que vamos a hacer es buscar dentro de los campos del array, y dicha función lo que hace es devolvernos si existe o no dentro del array, simplemente eso.

Aquí no obtendremos la posición de donde se encuentra la cadena que hemos buscado, pero a lo mejor con un simple true o false nos sirva para hacer funcionar nuestro código.

Buscar una cadena en el array, usando array_filters

Los casos anteriores nos pueden servir para la mayoría de búsquedas que necesitemos. Pero ¿qué ocurre si queremos buscar en el array todos los campos que contengan un término en concreto? Que ninguna de las anteriores opciones nos sirve para lo que queremos, y es por eso que usaremos la función array_filters de PHP, con ella podremos conseguir añadir una función que nos permita hacer una búsqueda, para encontrar nuestro texto dentro de los campos del array, sin que tenga que ser exactamente el mismo que el del campo.

Como veis aquí lo que hemos hecho es tirar de la función stristr, que lo que hace es buscarnos, de forma insensible a mayúsculas y minúsculas, si el texto que le hemos dicho existe en el campo del array.

También podríamos usar si nos hiciera falta expresiones regulares, usando por ejemplo preg_match con una función como esta:

Que simplemente hace lo que hace stristr, pero usando una función más potente.

Pero al final, cada cual debe buscar lo que necesita, y en nuestro caso con la función stristr, hemos tenido suficiente.

Al final lo que nos devuelve el array_filter, es un array con el valor de los campos que coinciden, aquí hemos cogido y los hemos listado, pero vosotros luego podéis hacer lo que queráis con ellos.

Espero que os haya sido de utilidad.

Y recordad! No olvidéis comentar! En vuestro código y en el Blog!

Comparte si te ha gustado:
Share on Facebook1Share on Google+0Tweet about this on TwitterShare on LinkedIn1Share on Tumblr0Digg this

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*
*