Ver Mensaje Individual
  #5 (permalink)  
Antiguo 04/06/2014, 13:40
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Duda con array multidimensional y funcion

Por lo que entiendo, quieres que cada par de valores esté en un array y este dentro de otro, haciéndolo bidimensional. De ser así, podrías insertar los arrays generados en una sola línea con la función array_push.

Código PHP:
Ver original
  1. array_push($arr, agrega_array("algo1","valor1"), agrega_array("algo2","valor2"), agrega_array("algo3","valor3"));

Aunque se me ocurre hacerlo de otra manera:

Código PHP:
Ver original
  1. function agrega_array(){
  2.     $array = [];
  3.     $args = func_get_args();
  4.     $total = count($args);
  5.     $i = 0;
  6.     while($total--) $array[] = $args[$i++];
  7.     return $array;
  8. }
  9. print_r(agrega_array(['algo1' => 'valor1'], ['algo2' => 'valor2'], ['algo3' => 'valor3']));

Lo anterior imprimirá lo siguiente:

Código HTML:
Ver original
  1. Array
  2. (
  3.     [0] => Array
  4.         (
  5.             [algo1] => valor1
  6.         )
  7.  
  8.     [1] => Array
  9.         (
  10.             [algo2] => valor2
  11.         )
  12.  
  13.     [2] => Array
  14.         (
  15.             [algo3] => valor3
  16.         )
  17.  
  18. )

La ventaja estará en que solamente llamarás una vez a la función agrega_array() y no cada vez que crees un array.

Y si no quieres pasar arrays como argumentos, puedes crearlos en la misma función:

Código PHP:
Ver original
  1. function agrega_array(){
  2.     $array = [];
  3.     $args = func_get_args();
  4.     $total = count($args);
  5.     $i = 0;
  6.     while($total--){
  7.         $par = explode(', ', $args[$i++]);
  8.         $array[] = [$par[0] => $par[1]];
  9.     }
  10.     return $array;
  11. }
  12. print_r(agrega_array('algo1, valor1', 'algo2, valor2', 'algo3, valor3'));

El resultado es el mismo que el de la función anterior.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Última edición por Alexis88; 05/06/2014 a las 00:49 Razón: Extra