Cambiar las posiciones de los elementos de un array
![]()
Nivel 1 (5 posts)
0 
| #0 | ![]() |
antoniogil | 26 abr 10 |
No se si se podrá hacer lo que estoy buscando, pero a ver si alguien lo ha visto alguna vez.
Tengo un array bidimensional que contiene las siguientes "columnas", por llamarlos de algún modo, ya que despues se muestran en una tabla:
Array (
[0] => Array ( [id] => 1 [precio] => 12.00 [nombre] => producto1 )
[1] => Array ( [id] => 2 [precio] => 33.00 [nombre] => producto2 )
[2] => Array ( [id] => 3 [precio] => 54.00 [nombre] => producto3 )
[3] => Array ( [id] => 4 [precio] => 85.00 [nombre] => producto4 )
[4] => Array ( [id] => 5 [precio] => 26.00 [nombre] => producto5 )
)
Y lo que quiero es teniedo otro array con los nombre de las columnas en un determinado orden:
Array ( [0] => id [1] => nombre [2] => precio )
Cambiar la posicion del primer array, para que quede de la siguiente forma:
Array (
[0] => Array ( [id] => 1 [nombre] => producto1 [precio] => 12.00 )
[1] => Array ( [id] => 2 [nombre] => producto2 [precio] => 33.00 )
[2] => Array ( [id] => 3 [nombre] => producto3 [precio] => 54.00 )
[3] => Array ( [id] => 4 [nombre] => producto4 [precio] => 85.00 )
[4] => Array ( [id] => 5 [nombre] => producto5 [precio] => 26.00)
)
¿Es posible hacer algo como esto?
Ya se que se podría hacer antes de formar el array, pero la cosa es que este array se forma de dos consultas a dos tablas distintas y luegos se hace un array_merge().
El mayor problema es que el método que hace esto es genérico, es decir, que se le pasan las tablas, los campos, etc... Por lo tanto no puedo saber que campos, son los que tienen que ir en cada posicion, porque en un caso se llamará nombre en otro descripcion, o uno tendrá 2 campos otro 3...
Por eso no se como hacerlo a posteriori teniendo ese array.
He mirado las funciones de php (http://www.php.net/manual/en/ref.array.php), pero no encuentro lo que necesito.
Espero que me puedan ayudar!
Gracias y Saludos!
