Ver Mensaje Individual
  #7 (permalink)  
Antiguo 21/01/2014, 10:21
Avatar de stramin
stramin
 
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: ordenando multiarray manteniendo clave (key)

Creo que marqué como solucionado demasiado rápido.

Justo iba a preguntar sobre eso, pero veo que has respondido a mi pregunta...

Todo salió bien usando los nombres de el ejemplo, pero al pasarlo al código real, no me resulta, no se que estoy haciendo mal :(

El arreglo real es así:
Array (
[3]=>Array([Press]=>117.81,[Temp]=>37,[Batt]=>87.4016)
[4]=>Array([Press]=>116.65,[Temp]=>38,[Batt]=>86.6142)
[6]=>Array([Press]=>123.54,[Temp]=>41,[Batt]=>86.6142)
[10]=>Array([Press]=>127.16,[Temp]=>80,[Batt]=>82.6772)
[14]=>Array([Press]=>125.75,[Temp]=>77,[Batt]=>83.4646)
[1]=>Array([Press]=>127.14,[Temp]=>40,[Batt]=>86.6142)
[5]=>Array([Press]=>119.11,[Temp]=>42,[Batt]=>86.6142)
[9]=>Array([Press]=>129.28,[Temp]=>79,[Batt]=>64.567)
[13]=>Array([Press]=>123.51,[Temp]=>71,[Batt]=>81.1024)
[11]=>Array([Press]=>122.25,[Temp]=>72,[Batt]=>82.6772)
[2]=>Array([Press]=>124.72,[Temp]=>40,[Batt]=>87.4016)
)

o sea en vez de nombres uso números (y puede que ese sea el problema)

el script está quedando así:

Código PHP:
Ver original
  1. $ahig=array();
  2. //$alow=array();
  3. //$ahot=array();
  4. //$sumpress=0;
  5. //$sumptemp=0;
  6.  
  7. foreach($SENS as $key=>$val){
  8.     echo 'ahig['.$key.']='.$val['Press'];
  9.     $ahig[$key]=$val['Press'];
  10.     //$alow[$key]=$val['Press'];
  11.     //$ahot[$key]=$val['Temp'];
  12.     //$sumpress=$val['Press'];
  13.     //$sumptemp=$val['Temp'];
  14. }
  15.  
  16. //$arrHot=$SENS;
  17. $arrHig=$SENS;
  18. //$arrLow=$SENS;
  19.  
  20. array_multisort($ahig,SORT_DESC,$arrHig);
  21. echo "<pre>";
  22. echo print_r($ahig);
  23. echo "</pre>";

(por ahora solo estoy intentando ordenar por un valor, trate de hacerlo tal como en tu ejemplo, pero no me sale bien.

la salida del echo dentro del foreach me muestra los datos sin ordenar correctamente:


ahig[3]=117.81
ahig[4]=116.65
ahig[6]=123.54
ahig[10]=127.16
ahig[14]=125.75
ahig[1]=127.14
ahig[5]=119.11
ahig[9]=129.28
ahig[13]=123.51
ahig[11]=122.25
ahig[2]=124.72

Pero la salida del print_r me da los resultados con números del 0 al 10 :(

Array(
[0]=>129.28
[1]=>127.16
[2]=>127.14
[3]=>125.75
[4]=>124.72
[5]=>123.54
[6]=>123.51
[7]=>122.25
[8]=>119.11
[9]=>117.81
[10]=>116.65
)

no entiendo!
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D