Foros del Web » Programando para Internet » PHP »

ordenar valores de un array por columna

Estas en el tema de ordenar valores de un array por columna en el foro de PHP en Foros del Web. Hola a todos! Mi problema es que no logro ordenar un array según el orden de una de sus columnas. He leido los tutoriales, he ...
  #1 (permalink)  
Antiguo 09/05/2011, 10:57
 
Fecha de Ingreso: marzo-2009
Mensajes: 23
Antigüedad: 15 años
Puntos: 0
ordenar valores de un array por columna

Hola a todos!

Mi problema es que no logro ordenar un array según el orden de una de sus columnas. He leido los tutoriales, he utilizado las funciones de sort, array_multisort, etc, pero nada. Me podrían ayudar por favor?

Mi array es el siguiente
[
Código:
var_dump($tab_res);

array(5) { [0]=> string(7) "JCP 429"         [1]=> string(19) "Phoenix dactylifera" [2]=> string(3) "yes"[3]=> float(7.14) [4]=> int(13) } 
array(5) { [0]=> string(15) "SZ2.40 - P3_260"[1]=> string(19) "Phoenix dactylifera" [2]=> string(2) "no" [3]=> float(14.29)[4]=> int(12) } 
array(5) { [0]=> string(12) "SZ 01_P3-254"   [1]=> string(19) "Phoenix dactylifera" [2]=> string(2) "no" [3]=> float(0)    [4]=> int(14) } 
array(5) { [0]=> string(12) "D76 - P3_284"   [1]=> string(19) "Phoenix dactylifera" [2]=> string(3) "yes"[3]=> float(21.43)[4]=> int(11) } 
array(5) { [0]=> string(12) "D67 - P3_281"   [1]=> string(19) "Phoenix dactylifera" [2]=> string(3) "yes"[3]=> float(21.43)[4]=> int(11) } 
array(5) { [0]=> string(6) "P2_141"          [1]=> string(19) "Phoenix canariensis" [2]=> string(2) "no" [3]=> float(0)    [4]=> int(14) } 
array(5) { [0]=> string(12) "D44 - P3_275"   [1]=> string(19) "Phoenix dactylifera" [2]=> string(3) "yes"[3]=> float(100)  [4]=> int(0) } 
array(5) { [0]=> string(5) "P25_M" 	     [1]=> string(19) "Phoenix dactylifera" [2]=> string(2) "no" [3]=> float(14.29)[4]=> int(12) }
Quiero ordenarla por la columna $tab_res[3] que es un porcentaje, pero no me resulta. He intentado lo siguiente pero no pasa nada:

Código PHP:
array_multisort ($tab_res[0],$tab_res[1],$tab_res[2],$tab_res[3],SORT_DESCSORT_NUMERIC,$tab_res[4],$tab_res); 

Luego intenté esto, pero me desordena todas las columnas!!

Código PHP:
foreach ($tab_res as $key => $row) {
    
$acc_name[$key]    =$row[0];
    
$tab[$key]    =$row[1];
    
$cul[$key]    =$row[2];
        
$likehood[$key]    =$row[3];
    
$dif[$key]    =$row[4];
}

array_multisort($acc_name,$tab,$cul,$likehood,$dif,SORT_DESC,SORT_NUMERIC$tab_res); 

Si me pudiesen ayudar estaría muy agradecida.

Biokari
  #2 (permalink)  
Antiguo 09/05/2011, 11:03
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: ordenar valores de un array por columna

mostrame como cargas el array $tab_res
  #3 (permalink)  
Antiguo 09/05/2011, 12:21
Avatar de @ndreX!  
Fecha de Ingreso: abril-2007
Mensajes: 161
Antigüedad: 17 años
Puntos: 4
Respuesta: ordenar valores de un array por columna

No has utilizado krsort()?

http://php.net/krsort
__________________
Blog de Andres Ortiz: http://www.axpuntes.com/
  #4 (permalink)  
Antiguo 10/05/2011, 03:02
 
Fecha de Ingreso: marzo-2009
Mensajes: 23
Antigüedad: 15 años
Puntos: 0
Respuesta: ordenar valores de un array por columna

Hola!

Muchas gracias por responder!


Patriarka $tab_res lo creo de la siguiente manera:

Código PHP:
$tab_res=array($bd_acc_name,$tab_col[1],$cultivar_bool,$Likehood,$differents); 
En donde
$bd_acc_name , es el numero de acceso de mis individuos , que recupero de mi base de datos.
$tab_col[1], es una tabla con el nombre científico de esos individuos, que recupero de la base de datos.

$cultivar_bool, si es un cultivar o no, info de la base de datos.
$Likehoood, es el resultado de una operación matemática, comparo mis datos con los de la base de datos y me da el porcentaje de similitud.
$differents, también es un cálculo matemático.


@ndreX:

Si utilisé ksort, pero no me funcionó, lo hice de esta manera:

Código PHP:
krsort($tab_res[3]);
foreach (
$fruits as $key => $val) {
    echo 
"$key = $val\n";


Y cuando pongo ese scrip no me imprime nada de nada.

Pasé por todas las funciones PHP que ordenen por el valor de la variable... snif

Etiquetas: columna
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 10:58.