elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Ayuda con un array!
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con un array!  (Leído 2,646 veces)
kodeone

Desconectado Desconectado

Mensajes: 22



Ver Perfil
Ayuda con un array!
« en: 3 Enero 2011, 22:41 pm »

Buenas!
Este es mi segundo mensaje en el foro y mi primera duda. Vereis, tengo un script en que tengo 2 funciones, una para añadir datos al principio de un array ya inicializado y otra función para añadir datos al final. La cosa está en que aunque declare el array como global no me lo utiliza dentro de la función, me crea uno nuevo. Llevo horas dandole vueltas y me esta tocando la moral ya...
Código:
	
        $vector = array(2,3,4,5,6,7,7);

function añadir_p($vector,$n){
for ($i=count($vector);$i >= 0;$i--){
$vector[$i]=$vector[$i-1];
}
$vector[0]=$n;
return print_r($vector);
}
      $n = 10;
      echo añadir_p($vector,$n);

Si hago esto me lo hará bien, me mostrará 10,2,3,4... Pero si hago un print_r $vector fuera de la funcion me muestrá el array como al principio 2,3,4... Lo que quiero es que me modifique el vector, no solo en la función. A ver si alguien me ayuda.

Saludos!


En línea

AFelipeTrujillo

Desconectado Desconectado

Mensajes: 160



Ver Perfil WWW
Re: Ayuda con un array!
« Respuesta #1 en: 3 Enero 2011, 22:54 pm »

Revise esto http://php.net/manual/es/reserved.variables.globals.php


En línea

KrossPock

Desconectado Desconectado

Mensajes: 208



Ver Perfil
Re: Ayuda con un array!
« Respuesta #2 en: 3 Enero 2011, 23:20 pm »

Ya hay una funcion que hace eso xD: array_unshift()
En línea


kodeone

Desconectado Desconectado

Mensajes: 22



Ver Perfil
Re: Ayuda con un array!
« Respuesta #3 en: 3 Enero 2011, 23:34 pm »

Ya hay una funcion que hace eso xD: array_unshift()

Ya, pero mi profesor solo nos deja usar lo que él nos enseña, suspende las prácticas si usamos otras funciones.


Thanks for info, ahora lo ojearé.


Saludos!
En línea

cassiani


Desconectado Desconectado

Mensajes: 978


« Anterior | Próximo »


Ver Perfil WWW
Re: Ayuda con un array!
« Respuesta #4 en: 4 Enero 2011, 06:35 am »

Hola kodeone, lo que sucede es que al pasar una variable por parámetro, por defecto/default, se pasa solo su valor y se usa como si fuera una variable nueva, es decir, se edita ese valor pasado como argumento pero solo dentro de la función y no altera el que tenga fuera de ella.

un ejemplo usando tu código y mostrándolo de la siguiente manera devolvería:

Código:
$n = 10;
// mostrando el contenido del vector original
echo '<pre>',print_r($vector),'</pre>';
// mostrando el resultado luego de agregar el nuevo elemento
echo '<pre>',añadir_p($vector,$n),'</pre>';
// mostrando el contenido del vector original al culminar el proceso
echo '<pre>',print_r($vector),'</pre>';
Código:
 Array
(
    [0] => 2
    [1] => 3
    [2] => 4
    [3] => 5
    [4] => 6
    [5] => 7
    [6] => 7
)

Array
(
    [0] => 10
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
    [5] => 6
    [6] => 7
    [7] => 7
)

Array
(
    [0] => 2
    [1] => 3
    [2] => 4
    [3] => 5
    [4] => 6
    [5] => 7
    [6] => 7
)

PHP nos permite a partir de la versión 4 la posibilidad de pasar variables por referencia, de manera que la variable pasada como argumento al ser modificada se reflejara en el resultado aun estando fuera de la función.

Para indicar que pasas la variable por referencia solo debes anteponer el carácter ampersand (&) a la variable que desees, ejemplo:
Código:
$vector = array(2,3,4,5,6,7,7);
function añadir_p(&$vector,$n){
$total = count($vector);
for ($i=$total;$i >= 0;$i--)
$vector[$i]=$vector[$i-1];
$vector[0]=$n;
return print_r($vector);
}

$n = 10;
// mostrando el contenido del vector original
echo '<pre>',print_r($vector),'</pre>';
// mostrando el resultado luego de agregar el nuevo elemento
echo '<pre>',añadir_p($vector,$n),'</pre>';
// mostrando el contenido del vector original al culminar el proceso
echo '<pre>',print_r($vector),'</pre>';

Devolverá:
Código:
Array
(
    [0] => 2
    [1] => 3
    [2] => 4
    [3] => 5
    [4] => 6
    [5] => 7
    [6] => 7
)

Array
(
    [0] => 10
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
    [5] => 6
    [6] => 7
    [7] => 7
)

Array
(
    [0] => 10
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
    [5] => 6
    [6] => 7
    [7] => 7
)
En línea

kodeone

Desconectado Desconectado

Mensajes: 22



Ver Perfil
Re: Ayuda con un array!
« Respuesta #5 en: 4 Enero 2011, 11:04 am »

Muchas gracias Cassiani me ha servido de gran ayuda!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Copiar parte de una array a otra array
Programación Visual Basic
sircid 3 5,244 Último mensaje 19 Diciembre 2007, 11:27 am
por LeandroA
Ayuda en C# con array de objetos
.NET (C#, VB.NET, ASP)
DaNuK 5 14,148 Último mensaje 19 Abril 2010, 07:10 am
por DaNuK
[Ayuda] Array en CSocketPlus
Programación Visual Basic
VampireLord 3 2,513 Último mensaje 30 Junio 2010, 04:49 am
por VampireLord
ayuda con array
Programación C/C++
dulcevictoria 1 2,515 Último mensaje 7 Diciembre 2010, 23:53 pm
por winroot
Ayuda array
Programación C/C++
alexis33de 5 2,471 Último mensaje 30 Mayo 2011, 17:03 pm
por El_Java
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines