Arrays en PHP

SeiYa_Banned

Bueno, quiero en cierto momento enviar un array a una funcion, pero no tengo muy claro como es. No quiero enviarle un array propiamente dicho, sino un numero indefinido de valores que iran a almacenarse dentro de un array. Y queria saber mas o menos como se hace.

Gracias y un saludo.

ValaV

te refieres a una estructura?
por ejemplo
envier un alumno
que tiene valores tipo
integer
string
real

es eso?

AcidNos

Explicate un poco mas. Se mas concreto

cabron

Pues no se que quieres hacer exáctamente por que no te has explicado muy bien que digamos, pero si lo que quieres es ir llamando a una función en distintos puntos del script para ir metiendo números en un array, y que el array mantenga sus elementos en sucesivas llamadas, lo único que tienes que hacer es declarar el array como static dentro de la función, o simplemente usar un array global.

Um, ahora que te leo otra vez, creo que lo que dices es que quieres mandar una lista de números a una función, que la función cree un array con ellos, y en cada llamada a la función el número de elementos de la lista puede variar, entonces séría algo así:

mi_funcion(1,2,3,4,5);
mi_funcion (3,5);
mi_funcion (69,69,69);

function mi_funcion()
{
$mi_array = func_get_args();

//bla bla bla

}

Así de simple, ahora $mi_array es un array que tiene todos los argumentos que le hayas pasado a la función.

SeiYa_Banned

Bueno, me explico mejor.

Tengo una funcion que le paso X argumentos por ejemplo:

Persona ($nombre, $apellidos, $otros);

Por asi decirlo, quiero que otros sea un array, de manera que pueda enviar: Persona("Pepe", "Perez", 43); y Persona("Pepe", "Perez", 43, 498, 345);

Podria usar lo que ha dicho cabron a pesar de que ya existan variables definidas ? es decir, puedo enviarle mas argumentos de los que recibe y luego guardar todos en un array ?

guner

http://www.php.net/func_get_args/
Queda respondido, creo yo _.

Si lo quieres guardar en un array GLOBAL tendrías que poner como parámetro una referencia:

function Persona($n, $a, &$array /* y más parámetros*/)
{
//TODO
$array = array ( ... );
}

y para usarla:

Persona('Pepe', 'González', $ARRAY_GLOBAL, 43, 345, 234, 34 ...)

var_dump($ARRAY_GLOBAL);

O declarar la variable global directamente dentro de la función.

function Persona($n, $a)
{
//TODO
$GLOBALS['array'] = array ( ... );
}

Persona('Pepe', 'Martín', 324, 234, 234, 123);

var_dump($array);

Para meter en el array solo los parámetros >= 2

function Personas($n, $a)
{
$array = array ();
for ($k = 1 ; $k < func_num_args() ; $k++)
$array[ ] = func_get_arg($k);
}

Usuarios habituales

  • guner
  • SeiYa_Banned
  • cabron
  • AcidNos
  • ValaV