[Snippet] Función Busqueda Array especificando clave (Array search with key)

1093 visitas 2 respuestas

Buenas, os dejo por aqui otra función que me ha sido bastante útil a la hora de buscar en un array especificando una clave concreta. Me explico, por ejemplo en un array que tenemos id de usuarios y nombre , pero hay un usuario que tiene de nombre 444, sin embargo queremos asegurarnos que solo buscamos el usuario con id 444, con esta función podemos especificar para buscar el solamente en la clave id.

function arraySearch($array, $key, $needle)
{
    $aResult = array();

    foreach ((array)$array as $aValues)
    {
         if ($key === '' AND in_array($needle, $aValues)) 
               $aResult[] = $aValues;
         else
            if (isset($aValues[$key]) AND $aValues[$key] == $needle)   
               $aResult[] = $aValues;
    }

    return $aResult;
}

Devolverá un array vacío si no encuentra coincidencia y devolverá la coincidencia si la encuentra.

Un saludo!!!!

por desde España

Registrado desde: 07 Jan 03

Respuestas

2 0

Buenas Mike,

Más de una vez he necesitado algo así así que gracias ;).

(Una anotación) Creo que la descripción que has incluido puede conducir a error. Por lo que dices parece (o entiendo) que la función realiza una búsqueda sobre un array de una sola dimensión, algo que se puede realizar aplicando simplemente in_array , combinado con array_keys si hiciera falta buscar en las claves.

Lo útil de esta función es que se aplica sobre un array de arrays:

[0]=> [nombre]=>'Pepe'
      [edad] => '40'
[1]=> [nombre]=>'Juan'
      [edad] => '22'

Nos permite encontrar una entrada a partir de una determinada propiedad o clave del array.

por desde España

Registrado desde: 02 Jul 02
1 0

Si, de la obviedad de me olvidó ponerlo, es para arrays multidimensionales!! Gracias Javier!!!! ;)!

por desde España

Registrado desde: 07 Jan 03