Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/12/2005, 06:57
masterjail
 
Fecha de Ingreso: octubre-2004
Ubicación: Cork (Irlanda)
Mensajes: 161
Antigüedad: 19 años, 6 meses
Puntos: 1
ordenar array segun clave de otro...

Hola, he estado buscando información sobre las funciones para ordenar arrays pero creo que ninguna me sirve para mi propósito o no sé como utilizarlas...

Explico mi problema mediante un ejemplo.

Tengo dos arrays:

Código:
$arr1 => array(4) { [0]=> array(2) { ["ID"]=>  int(1)
                                     ["PT"]=>  int(2)
                                     ["DF"]=>  int(4) }
                    [1]=> array(2) { ["ID"]=>  int(2)
                                     ["PT"]=>  int(2)
                                     ["DF"]=>  int(8) }
                    [2]=> array(2) { ["ID"]=>  int(3)
                                     ["PT"]=>  int(1)
                                     ["DF"]=>  int(-2) }
                    [3]=> array(2) { ["ID"]=>  int(4)
                                     ["PT"]=>  int(1)
                                     ["DF"]=>  int(-1) } }

$arr2 => array(4) { [0]=> array(2) { ["ID"]=> int(4)
                                     ["PT"]=> int(0)
                                     ["DF"]=> int(-1) }
                    [1]=> array(2) { ["ID"]=> int(3)
                                     ["PT"]=> int(1)
                                     ["DF"]=> int(5) }
                    [2]=> array(2) { ["ID"]=> int(2)
                                     ["PT"]=> int(0)
                                     ["DF"]=> int(-2) }
                    [3]=> array(2) { ["ID"]=> int(1)
                                     ["PT"]=> int(1)
                                     ["DF"]=> int(8) } }
Los represento de otra forma por si queda más claro:
Código:
$arr1:               $arr2:

 ID | PT | DF         ID | PT | DF
--------------       ---------------
  1 |  2 |  4          4 |  0 | -1
  2 |  2 |  8          3 |  1 |  5
  3 |  1 | -2          2 |  0 | -2
  4 |  1 | -1          1 |  1 |  8
Lo que quiero hacer es lo siguiente: recolocar las filas de $arr1 en el orden que aparece un atributo concreto de $arr2. Es decir, en este caso el atributo concreto quiero que sea ID, entonces quiero que $arr1 se reordene para quedar así:

Código:
 ID | PT | DF
--------------
  4 |  1 | -1
  3 |  1 | -2
  2 |  2 |  8
  1 |  2 |  4
Supongo que con esta explicación se entiende.

¿Alguien sabría como utilizar alguna función existente en php para realizar esto? ¿o tendré que construirme una a mano?

Gracias!