Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: nŘFi# en 15 Junio 2009, 17:16 pm



Título: ordenación arrays
Publicado por: nŘFi# en 15 Junio 2009, 17:16 pm
Buenas,

Tengo un array que contiene varios arrays dentro y me gustaria ordenar por un campo en concreto.
Para que lo veais mas claro, el array es este:

Código:
Array
(
    [0] => Array
        (
            [id] => 5
            [descripcio] => desc5
        )

    [1] => Array
        (
            [id] => 4
            [descripcio] => desc4
        )

    [2] => Array
        (
            [id] => 8
            [descripcio] => desc8
        )

)

Los arrays de dentro tienen dos campos, el id y la descripcion. Yo lo que quiero es ordenar por el campo id. Es decir, que el $array[1]['id'] que vale 4, estuviera por delante de $array[0]['id'] que vale 5. Nose si me explico bien..

He mirado las funciones de arrays en php.net pero no veo ninguna que me sirva (a lo mejor se me escapa alguna...)

Alguien tiene alguna idea de como puedo hacerlo? O lo que quiero no es factible?

sALu2!


Título: Re: ordenación arrays
Publicado por: nŘFi# en 15 Junio 2009, 17:48 pm
Lo tengo!  ;-)


Código
  1. function ordenarMultidimensional($arrayOriginal, $camp)
  2. {
  3.    $posicio = array();
  4.    $novaFila = array();
  5.    $resultat = array();
  6.  
  7.    foreach ($arrayOriginal as $key => $fila)
  8.    {
  9.        $posicio[$key]  = $fila[$camp];
  10.        $novaFila[$key] = $fila;
  11.    }
  12.  
  13.    asort($posicio);
  14.  
  15.    foreach ($posicio as $key => $val)
  16.    {    
  17.        array_push($resultat,$novaFila[$key]);
  18.    }
  19.    return $resultat;
  20. }
  21.  


Título: Re: ordenación arrays
Publicado por: ^Cloud^ en 15 Junio 2009, 21:13 pm
Personalmente suelo usar la función array_multiosort de php. Al principio es un poco lioso de entender pero es muy útil a la hora de ordenar matrices en php.

http://es2.php.net/manual/en/function.array-multisort.php

Un saludo,