Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/05/2011, 10:57
Biokari
 
Fecha de Ingreso: marzo-2009
Mensajes: 23
Antigüedad: 15 años, 1 mes
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