Foros del Web » Programando para Internet » PHP »

unir dos array y ordenar

Estas en el tema de unir dos array y ordenar en el foro de PHP en Foros del Web. Hola a todos, Tengo un problema con unas consultar mysql y los arrays. Lo he preguntado en el foro de mysql pero me han dicho ...
  #1 (permalink)  
Antiguo 02/05/2011, 04:28
 
Fecha de Ingreso: febrero-2007
Ubicación: Valencia
Mensajes: 457
Antigüedad: 17 años, 9 meses
Puntos: 0
unir dos array y ordenar

Hola a todos,

Tengo un problema con unas consultar mysql y los arrays. Lo he preguntado en el foro de mysql pero me han dicho que mejor aqui.

Tengo dos consultas, sql1 y sql2, que quiero ordenar el resultado por el contador de sql2...

Sería algo asi:

Código PHP:
$sql1 "SELECT palabras, COUNT(*) AS num FROM tags GROUP BY palabras";
$resultado1 mysql_query($query1);
while(
$datos1=mysql_fetch_assoc($resultado1)) {
$sql2 "SELECT COUNT(*) as num2 FROM files WHERE titulo LIKE '%".$datos1[palabras]."%' OR descripcion LIKE '%".$datos1[palabras]."%'";
$resultado2 mysql_query($query2);
$datos2=mysql_fetch_assoc($resultado2);

echo 
'<tr><td>'.$datos1[palabras].'</td><td>'.$datos1[num].'</td><td>'.$datos2[num2].'</td></tr>';


¿Como podria unir el array sql1 y sql2 para poder ordenar por num2 descendentemente?

Gracias y un saludo,
  #2 (permalink)  
Antiguo 03/05/2011, 13:00
 
Fecha de Ingreso: enero-2008
Mensajes: 201
Antigüedad: 16 años, 10 meses
Puntos: 39
Respuesta: unir dos array y ordenar

Si modificas tu código así creo que podrías unir ambos arrays:
Código PHP:
$sql1 "SELECT palabras, COUNT(*) AS num FROM tags GROUP BY palabras"
$resultado1 mysql_query($query1); 
$i 0;
while(
$datos1=mysql_fetch_assoc($resultado1)) { 
$sql2 "SELECT COUNT(*) as num2 FROM files WHERE titulo LIKE '%".$datos1[palabras]."%' OR descripcion LIKE '%".$datos1[palabras]."%'"
$resultado2 mysql_query($query2); 
$datos2=mysql_fetch_assoc($resultado2); 

$datos[$i][palabras] = $datos1[palabras];
$datos[$i][num] = $datos1[num];
$datos[$i][num2] = $datos2[num2];
$i++

La idea es obtener una matriz con toda la información a la que posteriormente aplicar un algoritmo de ordenación. Hay varios algoritmos en pseudocódigo que puedes transformar fácilmente a PHP para que ordene una matriz.

Aquí te dejo un enlace con los más famosos: Lista de algoritmos de ordenamiento

Si no quieres uno muy complicado de implementar te recomiendo el de la burbuja, aunque no es el más eficiente.

Otro muy famoso (y más rápido) es el QuickSort pero quizás te resulte más difícil de implementar.

Desconozco si PHP tiene alguna función ya implementada que pueda hacer este tipo de ordenación.
  #3 (permalink)  
Antiguo 04/05/2011, 13:47
 
Fecha de Ingreso: febrero-2007
Ubicación: Valencia
Mensajes: 457
Antigüedad: 17 años, 9 meses
Puntos: 0
Respuesta: unir dos array y ordenar

Solucionado, muchas 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 12:53.