Foros del Web » Programando para Internet » PHP »

Ordenar array

Estas en el tema de Ordenar array en el foro de PHP en Foros del Web. Aqui voy, luego de hacer un SELECT a mi tabla, he creado un arreglo de la siguiente manera: $sql = SELECT * FROM `tbl_clientes` ORDER ...
  #1 (permalink)  
Antiguo 24/05/2017, 17:36
Avatar de julia2021  
Fecha de Ingreso: diciembre-2014
Ubicación: Mexico
Mensajes: 152
Antigüedad: 9 años, 3 meses
Puntos: 11
Sonrisa Ordenar array

Aqui voy, luego de hacer un SELECT a mi tabla, he creado un arreglo de la siguiente manera:
$sql = SELECT * FROM `tbl_clientes` ORDER BY `tbl_clientes`.`nombre` ASC ;

while($data = $db->recorrer($sql)) {
$clientes[$data['id']] = array(
'id_cliente' => $data['id'],
'nombre' => $data['nombre'],
'apellidos' => $data['apellidos'],
'propietario' => $data['propietario']
)
En dicha tabla de clientes hay unicamente uno y solo un registro que tiene en el campo "propietario" igual a "1", en el resto de los registros el campo "propietario" es igual a "0" por default.
Aquí viene mi gran pregunta: Cómo hago para ordenar el arreglo de manera tal que primero me aparezca el registro con el campo "propietario" igual a 1 y luego me aparezcan el resto pero ordenados por el campo "nombre"

PD: no se preocupen por la función "recorrer()", con ella es que hago el query a la tabla

Última edición por julia2021; 24/05/2017 a las 17:41
  #2 (permalink)  
Antiguo 24/05/2017, 19:59
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 7 meses
Puntos: 2237
Respuesta: Ordenar array

Modifica la consulta:

Código SQL:
Ver original
  1. SELECT * FROM tbl_clientes ORDER BY propietario DESC, nombre

propietario DESC hará que aparezcan de mayor a menor, en este caso, solo el primero; el resto se ordenará por nombre y no es necesario poner ASC, pues es el orden por defecto.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 24/05/2017, 22:38
Avatar de julia2021  
Fecha de Ingreso: diciembre-2014
Ubicación: Mexico
Mensajes: 152
Antigüedad: 9 años, 3 meses
Puntos: 11
Sonrisa Respuesta: Ordenar array

Totalmente acertada tu respuesta amigo @Triby, lo bello definitivamente esta en lo simple
Pero te cuento que estoy tratando de minimizar las consultas a la DB y hacerlo todo a través de arreglos para optimizar el rendimiento en la web, ademas que voy a usar tareas similares varias veces pero con distintos parámetros a ordenar.
Por eso me encantaría saber como lo podría hacer a través de arreglos?
  #4 (permalink)  
Antiguo 25/05/2017, 22:35
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 7 meses
Puntos: 2237
Respuesta: Ordenar array

Para cuestiones de optimización:

1- Cuántos registros esperas obtener de la consulta?
2- Vas a ordenar los resultados por diferentes campos en un mismo script?, no estaría mal que nos des un ejemplo.
3- Qué te hace pensar que minimizar las consultas y recargar los procesos en PHP puede ser lo óptimo?

No creas que es tan fácil ordenar arrays por subclave, aunque hay funciones que te pueden ayudar con la tarea. Revisa algunas sugerencias como: https://stackoverflow.com/questions/...ven-key-in-php
__________________
- León, Guanajuato
- GV-Foto

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 05:21.