Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => PHP => Mensaje iniciado por: xassiz_ en 13 Mayo 2010, 22:45 PM

Título: [Solucionado] Duda con variables
Publicado por: xassiz_ en 13 Mayo 2010, 22:45 PM
Bueno, tengo un problema ;D

En batch lo llaman polimetría no se si hay algo de PHP acerca de esto..


Bueno, el caso es que quiero indicar el nombre de una variable con otra variable.

Ejemplo:

Código (php) [Seleccionar]

<?php

$variable 
"decir";

?>



Y quiero crear otra variable que se llame "decirhola"..

Citar
<?php

$variable = "decir";
$$variablehola = "hola";

echo $decirhola;

?>


Espero entendais!

Saludos
Título: Re: Duda con variables
Publicado por: Shell Root en 13 Mayo 2010, 23:36 PM
¬¬! no entiendo el motivo de hacer eso, pero para eso esta el uso del contatenador (.)
Código (php) [Seleccionar]
$strHola = 'Hola';
$strDecir = 'Decir';

echo $strDecir.$strHola;
Título: Re: Duda con variables
Publicado por: xassiz_ en 14 Mayo 2010, 18:40 PM
A ver, no me entendiste, simplemente era un ejemplo.

Tengo una serie de variables

$algo1
$algo2
$algo3
...


Y quiero que el numero sea una variable numerica que se vaya incrementando.

Para eso tendria que hacer algo tal que asi:

Código (php) [Seleccionar]

<?php

for ($i 1;$i<=10;$i++) {
echo 
$algo$i;
}

?>


Me entiendes ahora?
Título: Re: Duda con variables
Publicado por: Shell Root en 14 Mayo 2010, 19:26 PM
Simon, desde el inicio del POST entendí lo que quieres hacer, lo que no entiendo es el uso que le podrías dar. Dadnos un ejemplo y de allí partiremos con la solución de tu duda!
Título: Re: Duda con variables
Publicado por: xassiz_ en 14 Mayo 2010, 20:53 PM
Tengo una lista de arrays con esa "estructura" de nombre.

array_1
array_2
array_3
array_4

Hasta x numero.

Y quiero mostrarlos (no se cuantos de ellos hay en total, eso varía).

Código (php) [Seleccionar]

<?php

$array_1 
= array("Dato 1","Dato 2");
$array_2 = array("Dato 1","Dato 2");
$array_3 = array("Dato 1","Dato 2");
$array_4 = array("Dato 1","Dato 2");

?>



Entonces:

Código (php) [Seleccionar]

<?php
 
for ($i 1;$i<=10;$i++) {
echo 
$array_$i[0];
echo 
$array_$i[1];
echo 
$array_$i[2];
}
 
?>

Título: Re: Duda con variables
Publicado por: cassiani en 14 Mayo 2010, 21:27 PM
hola, solucionalo usando una matriz de dos dimensiones:

$matriz [Indice1] [Indice2]

con la funcion count sabras hasta donde debes iterar


Título: Re: Duda con variables
Publicado por: Shell Root en 14 Mayo 2010, 21:57 PM
En tú caso xassiz, sería algo como esto:
Código (php) [Seleccionar]
$matriz[0][0] = 'Dato 1';
$matriz[0][1] = 'Dato 2';
$matriz[1][0] = 'Dato 1';
$matriz[1][1] = 'Dato 2';

print_r($matriz); 


Código (Print) [Seleccionar]
shellroot@alex-laptop:/var/www/PoC$ php index.php
Array
(
    [0] => Array
        (
            [0] => Dato11
            [1] => Dato12
        )

    [1] => Array
        (
            [0] => Dato22
            [1] => Dato23
        )

)
shellroot@alex-laptop:/var/www/PoC$

Título: Re: Duda con variables
Publicado por: ‭lipman en 14 Mayo 2010, 22:07 PM
Mírate el foreach (http://php.net/manual/es/control-structures.foreach.php)
Título: Re: Duda con variables
Publicado por: xassiz_ en 15 Mayo 2010, 00:12 AM
Voy ver si consigo hacer algo con la matriz de dos dimensiones. El problema es que no los quiero mostrar juntos, van en el código php por separado.. o con tags html por el medio >.< asi que el print_r ya no me serviria ;/
Título: Re: Duda con variables
Publicado por: Shell Root en 15 Mayo 2010, 00:34 AM
Para eso entonces están los bucles. While, For, For Each. Por ejemplo:
Código (php) [Seleccionar]
$matriz[0][0] = 'Dato11';
$matriz[0][1] = 'Dato12';
$matriz[1][0] = 'Dato22';
$matriz[1][1] = 'Dato23';

for ($i = 0; $i < 2; $i++){
for ($j = 0; $j < 2; $j++){
echo $matriz[$i][$j];
}
echo '<br>';
}

Código (Resultado) [Seleccionar]
shellroot@alex-laptop:/var/www/PoC$ php index.php

Dato11Dato12
Dato22Dato23

shellroot@alex-laptop:/var/www/PoC$
Título: Re: Duda con variables
Publicado por: xassiz_ en 15 Mayo 2010, 01:07 AM
Vale muchas gracias, me sirvió.

La cosa se complica ahora que quiero hacer un switch asi:
Código (php) [Seleccionar]

<?php

...

switch(
$id_matriz)
{
case "1":
...
case "2":
...
case "3":
...

...
}

?>



Donde en cada case se repite el mismo proceso.

Pero al poner un for dentro del switch da error de sintaxis xDD
Título: Re: Duda con variables
Publicado por: Shell Root en 15 Mayo 2010, 01:13 AM
¡Wait Moment!, no entendí la parte de switch, que quieres hacer con él?
Título: Re: Duda con variables
Publicado por: xassiz_ en 15 Mayo 2010, 13:28 PM
Supongamos que yo no se el numero de matrices hay, puede haber dos
Código (php) [Seleccionar]

$matriz[0][0] = 'Dato11';
$matriz[0][1] = 'Dato12';
$matriz[1][0] = 'Dato22';
$matriz[1][1] = 'Dato23';

cinco..
Código (php) [Seleccionar]

$matriz[0][0] = 'Dato11';
$matriz[0][1] = 'Dato12';
$matriz[1][0] = 'Dato22';
$matriz[1][1] = 'Dato23';
$matriz[2][0] = 'Dato32';
$matriz[2][1] = 'Dato33';
$matriz[3][0] = 'Dato42';
$matriz[3][1] = 'Dato43';
$matriz[4][0] = 'Dato52';
$matriz[4][1] = 'Dato53';


O los que sean, no lo sé!


Bueno, el caso es que quiero hacer un switch que sea

Código (php) [Seleccionar]

switch($variable)
{
case numero_de_matrices
}


Por ejemplo si hay 2 matrices hacer:
Código (php) [Seleccionar]

switch($variable)
{
case "1":
...
break;
case "2":
...
break;
default:
...
break;
}



Y si por ejemplo hay cinco..
Código (php) [Seleccionar]

switch($variable)
{
case "1":
...
break;
case "2":
...
break;
case "3":
...
break;
case "4":
...
break;
case "5":
...
break;
default:
...
break;
}


Do you understand me?





EDITO:

Ya lo arregle con un IF sin utilizar switch, me quedó mucho mejor, ahora solo me falta saber cual va a ser este valor del for:
Citarfor ($i = 0; $i < 2; $i++){

Como cuento en un array con dos dimensiones?
Título: Re: Duda con variables
Publicado por: MinusFour en 15 Mayo 2010, 16:17 PM
Probaste tu código de al principio? Porque yo juraría que php te permitia hacer eso.

Mira esto:
http://www.php.net/manual/es/language.variables.variable.php
Título: Re: Duda con variables
Publicado por: xassiz_ en 16 Mayo 2010, 14:00 PM
Cita de: MinusFour en 15 Mayo 2010, 16:17 PM
Probaste tu código de al principio? Porque yo juraría que php te permitia hacer eso.

Mira esto:
http://www.php.net/manual/es/language.variables.variable.php

Código (php) [Seleccionar]


<?php
echo "$a ${$a}";
?>




No sabía esto! T.T

Bueno, ahora ya esta el problema arreglado, gracias!