Ver Mensaje Individual
  #2 (permalink)  
Antiguo 21/05/2017, 21:56
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 10 meses
Puntos: 379
Respuesta: Busqueda en un ARREGLO

Ninguna de la dos, las funciones que menciones no son recursivas así que no puedes utilizarlas por si mismas para buscar en un arreglo de más de un nivel.

Te dejare una solución usando la función array_filter.
Código PHP:
Ver original
  1. $clientes = [
  2.  
  3.     1 => [
  4.         'id' => 1,
  5.         'nombre' => 'Juna Jose',
  6.         'cedula' => 123456,
  7.         'email' => '[email protected]',
  8.         'img' => 'jj.jpg',
  9.         'sexo' => 'm',
  10.         'dirección' => 'alguna dirección',
  11.     ],
  12.    
  13.     2 => [
  14.         'id' => 2,
  15.         'nombre' => 'Armando Bravo',
  16.         'cedula' => 789123,
  17.         'email' => '[email protected]',
  18.         'img' => 'ab.jpg',
  19.         'sexo' => 'm',
  20.         'dirección' => 'alguna dirección',
  21.     ],
  22.    
  23.     3 => [
  24.         'id' => 3,
  25.         'nombre' => 'Alicia Fuentes',
  26.         'cedula' => 731945,
  27.         'email' => '[email protected]',
  28.         'img' => 'af.jpg',
  29.         'sexo' => 'f',
  30.         'dirección' => 'alguna dirección',
  31.     ],
  32.    
  33. ];
  34.  
  35.  
  36. function value_exist($search, $array) {
  37.  
  38.     $callback = function($item) use (&$callback, $search) {
  39.         if (is_array($item)) {
  40.             return array_filter($item, $callback);
  41.         }
  42.    
  43.         return $item == $search;
  44.     };
  45.  
  46.    
  47.     return !empty(array_filter($array, $callback));
  48.    
  49. }
  50.  
  51. if (value_exist(124578, $clientes)) {
  52.     echo 'Existe cedula';
  53. } else {
  54.     echo 'no existe cedula';
  55. }

Otras formas de hacerlo es recorrer el arreglo con un foreach.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.