Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Buscando en arreglo multidimensional

Estas en el tema de Buscando en arreglo multidimensional en el foro de PHP en Foros del Web. Hola a todos, les cuento que antes yo hacia Toooodas mis consultas a la base de datos, hasta el mas mínimo dato yo iba y ...
  #1 (permalink)  
Antiguo 25/05/2017, 13:39
Avatar de julia2021  
Fecha de Ingreso: diciembre-2014
Ubicación: Mexico
Mensajes: 152
Antigüedad: 9 años, 4 meses
Puntos: 11
Sonrisa Buscando en arreglo multidimensional

Hola a todos, les cuento que antes yo hacia Toooodas mis consultas a la base de datos, hasta el mas mínimo dato yo iba y hacia un nuevo query a la DB, y entonces teníamos querys por todas partes, pero cuando mi aplicación entro en producción se puso lenta, por lo cual pasamos a hacer ahora poquitos querys a la DB y almacenarlos en arreglos y hasta ahora todo perfecto.

Sin embargo tengo como 3 días buscando info de como buscar un datos especifico en un campo especifico, pero no consigo respuesta asertiva.
Aquí les dejo como lo hacia antes y como lo quiero hacer ahora.

Comencemos con los datos>
Código data:
Ver original
  1. TABLA tbl_clientes: id_cliente / nombre / direccion / vip
  2.  
  3. datos > 1 / microsoft   / calle a / 0
  4. datos > 2 / epson       / calle b / 1
  5. datos > 3 / hp          / calle c / 0
  6. datos > 4 / toshiba     / calle d / 0
  7. datos > 5 / sony        / calle e / 0
  8. datos > 6 / genius      / calle f / 0

Ahora hicimos el siguiente arreglo en base a dichos datos>

Código PHP:
$db = new Conexion();
$sql $db->query("SELECT * FROM `tbl_clientes` ORDER BY `nombre` ASC ;");

if(
$db->rows($sql) > 0) {
    while(
$data $db->recorrer($sql)) {
        
$cliente[$data['id_cliente']] = array(
        
'id_cliente' => $data['id_cliente'],
        
'nombre' => $data['nombre'],
        
'direccion' => $data['direccion'],
        
'VIP' => $data['VIP']
      )
    }

AQUÍ MI PREGUNTA>

Antes, para buscar dato especifico, por ejemplo el 'nombre' de un registro especifico según el valor de otro campo, simplemente cambiaba el query a:

SELECT * FROM tbl_clientes WHERE vip = '1' ;

Pero ahora no sabemos como hacer la misma búsqueda directamente en el arreglo, sin necesidad de modificar el query original, es decir, queremos buscar un "dato especifico" en un "campo especifico".

Por ejemplo: almacenar en una variable el nombre del cliente cuyo campo VIP es igual a 1

Mil besos a quienes me puedan ayudar
  #2 (permalink)  
Antiguo 25/05/2017, 13:43
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 3 meses
Puntos: 206
Respuesta: Buscando en arreglo multidimensional

Ese tipo de búsquedas van a la base de datos. Si teneis un problema de rendimiento, es que algo estais haciendo tremendamente mal, pues no creo que vuestra página sea compleja ni que tengais miles de usuarios conectados a la vez como para que el rendimiento de mysql os penalice tan pronto.
  #3 (permalink)  
Antiguo 25/05/2017, 14:10
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 9 meses
Puntos: 263
Respuesta: Buscando en arreglo multidimensional

http://www.forosdelweb.com/f18/busqu...8/#post4817425
__________________
[email protected]
HITCEL
  #4 (permalink)  
Antiguo 25/05/2017, 14:13
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 9 meses
Puntos: 263
Respuesta: Buscando en arreglo multidimensional

Como te comente en otro post:
Código PHP:
Ver original
  1. $campo = 'cedula';
  2. //Aqui creo un array solo con los datos de la columna o campo especificado
  3. $filtro = array_column($clientes,$campo);
  4. //Aqui realizo la busqueda del valor solicitado
  5. $resultado = array_search('123456',$filtro);

Prueba y cuentanois
__________________
[email protected]
HITCEL
  #5 (permalink)  
Antiguo 01/06/2017, 11:01
Avatar de julia2021  
Fecha de Ingreso: diciembre-2014
Ubicación: Mexico
Mensajes: 152
Antigüedad: 9 años, 4 meses
Puntos: 11
Respuesta: Buscando en arreglo multidimensional

Me funciono perfecto amigo, Mil gracias

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:18.