Ver Mensaje Individual
  #5 (permalink)  
Antiguo 14/07/2010, 11:55
Avatar de masterojitos
masterojitos
 
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: Ordenar array multidimensional

si revisabas bien la web de php la funcion usort, te da la solucion para tu caso con valores numericos.

la funcion cmp, quedaria asi:
Código PHP:
Ver original
  1. function cmp($a, $b){
  2.     return ($a["tarifa"] < $b["tarifa"]) ? -1 : (($a["tarifa"] > $b["tarifa"]) ? 1 : 0);
  3. }

y aca te pongo todo el codigo completo con ejemplos.....

Código PHP:
Ver original
  1. <?php
  2. $hoteles = array();
  3. //$valores = array("a", "c", "b", "e", "d"); //PARA VALORES ALFABETICOS
  4. $valores = array(1123, 10145, 2243, 10892, 2243); //PARA VALORES NUMERICOS
  5. for($i=0;$i<5;$i++){
  6.     $hoteles[] = array("hotelname"=>"hotelnombre$i", "ciudad"=>"ciudad$i", "ubicacionid"=>"ubicacion$i", "tarifa"=>$valores[$i]);
  7. }
  8. function cmp($a, $b){
  9.     //return strcmp($a["tarifa"], $b["tarifa"]); //PARA VALORES ALFABETICOS
  10.     return ($a["tarifa"] < $b["tarifa"]) ? -1 : (($a["tarifa"] > $b["tarifa"]) ? 1 : 0); //PARA VALORES NUMERICOS
  11. }
  12. usort($hoteles, "cmp");
  13. //muestra de ejemplo
  14. foreach($hoteles as $key => $value){
  15.     echo $value["hotelname"]." - ".$value["ciudad"]." - ".$value["ubicacionid"]." - ".$value["tarifa"]."<br />";
  16. }
  17. $_SESSION['hoteles'] = $hoteles; //al ultimo recien guardas el arreglo bidimensional en una session.
  18. ?>

Suerte amigo y aver si me das mas karma xDDDDDD

Dios te Bendiga....
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog