Foros del Web » Programando para Internet » PHP »

Función devuelve sólo el primer array

Estas en el tema de Función devuelve sólo el primer array en el foro de PHP en Foros del Web. Hola amigos ¿Alguien por favor podría decirme por qué cuando paso una serie de arrays a través de una función con array_merge devuelve un resultado ...
  #1 (permalink)  
Antiguo 29/11/2015, 20:34
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 20 años, 5 meses
Puntos: 832
Función devuelve sólo el primer array

Hola amigos ¿Alguien por favor podría decirme por qué cuando paso una serie de arrays a través de una función con array_merge devuelve un resultado distinto que cuando le aplico array_merge directamente?

Código PHP:
Ver original
  1. function agrupar( $grupo ) {
  2.     $var = array_merge( $grupo );
  3.     return $var;
  4. }
  5.  
  6. $var = array_merge( array(1 , 2) , array(3 , 4) , array (5 , 6) );
  7. $var_2 = agrupar( array(1 , 2) , array(3 , 4) , array (5 , 6) );
  8.  
  9. echo '<pre>'. print_r( $var , true ) .'</pre>'; // Devuelve los arrays completos
  10. echo '<pre>'. print_r( $var_2 , true ) .'</pre>'; // Devuelve sólo el primer array
  #2 (permalink)  
Antiguo 29/11/2015, 21:47
Avatar de gonzaherrera77  
Fecha de Ingreso: noviembre-2015
Mensajes: 60
Antigüedad: 9 años
Puntos: 7
Respuesta: Función devuelve sólo el primer array

Hola metacortex, el problema es que cuando estas invocando a la función agrupar le estas mandando 3 parametros

Código PHP:
Ver original
  1. $var_2 = agrupar( array(1 , 2), array(3, 4), array(5, 6));

Cuando se separa por una coma ya se toma como un parametro. Y en la función solo estas recibiendo uno
Código PHP:
Ver original
  1. function agrupar( $grupo ) {
  2.     $var = array_merge( $grupo );
  3.     return $var;
  4. }

Funcionaria asi.
Código PHP:
Ver original
  1. <?php
  2.  
  3. //Recibo los tres parametros, en este caso son arrays
  4. function agrupar($vector1, $vector2, $vector3) {
  5.     $var = array_merge($vector1, $vector2, $vector3);
  6.     return $var;
  7. }
  8.  
  9.  
  10. $var = array_merge( array(1, 2), array(3 , 4), array (5 , 6));
  11. //Invoco ala funcion pasandole los tres parametros.
  12. $var_2 = agrupar( array(1 , 2), array(3, 4), array(5, 6));
  13.  
  14. echo '<pre>'. print_r( $var , true ) .'</pre>'; // Devuelve los arrays completos
  15. echo '<pre>'. print_r( $var_2 , true ) .'</pre>'; // Devuelve sólo el primer array
  16.  ?>

Pero me pregunto por que queres tener una función que hace los mismo que la funcion array_merge?

Última edición por gonzaherrera77; 29/11/2015 a las 21:57
  #3 (permalink)  
Antiguo 30/11/2015, 08:30
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 20 años, 5 meses
Puntos: 832
Respuesta: Función devuelve sólo el primer array

Cita:
Iniciado por gonzaherrera77 Ver Mensaje
Pero me pregunto por que queres tener una función que hace los mismo que la funcion array_merge?
Gracias por responder! La cosa del array_merge es sólo parte del conjunto de tareas que tiene la función (el cuento es largo pero en síntesis procuramos darle al cliente la ventaja de construir estructura html de mediana complejidad a través de una sola etiqueta php). El asunto va bien pero ahora me encuentro estancado en este punto.

En la función la cantidad de arrays es indeterminada. Según el caso puede que se trate de uno solo o de 20. Y la función debería poder procesar lo que le pongan en frente.
  #4 (permalink)  
Antiguo 30/11/2015, 09:56
Avatar de gonzaherrera77  
Fecha de Ingreso: noviembre-2015
Mensajes: 60
Antigüedad: 9 años
Puntos: 7
Respuesta: Función devuelve sólo el primer array

Cita:
Iniciado por metacortex Ver Mensaje
Gracias por responder! La cosa del array_merge es sólo parte del conjunto de tareas que tiene la función (el cuento es largo pero en síntesis procuramos darle al cliente la ventaja de construir estructura html de mediana complejidad a través de una sola etiqueta php). El asunto va bien pero ahora me encuentro estancado en este punto.

En la función la cantidad de arrays es indeterminada. Según el caso puede que se trate de uno solo o de 20. Y la función debería poder procesar lo que le pongan en frente.
Lindo Dolorsito de cabeza, vamos aver si alguien puede aportar algo que te oriente. Por que yo estoy pensando .

¡Saludos!

Etiquetas: devuelve, primer
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:11.