Foro de elhacker.net

Programación => 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
  1. <?php
  2.  
  3. $variable = "decir";
  4.  
  5. ?>
  6.  

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
  1. $strHola = 'Hola';
  2. $strDecir = 'Decir';
  3.  
  4. 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
  1. <?php
  2.  
  3. for ($i = 1;$i<=10;$i++) {
  4. echo $algo$i;
  5. }
  6.  
  7. ?>

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
  1. <?php
  2.  
  3. $array_1 = array("Dato 1","Dato 2");
  4. $array_2 = array("Dato 1","Dato 2");
  5. $array_3 = array("Dato 1","Dato 2");
  6. $array_4 = array("Dato 1","Dato 2");
  7.  
  8. ?>
  9.  

Entonces:

Código
  1. <?php
  2.  
  3. for ($i = 1;$i<=10;$i++) {
  4. echo $array_$i[0];
  5. echo $array_$i[1];
  6. echo $array_$i[2];
  7. }
  8.  
  9. ?>
  10.  


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

Código:
$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
  1. $matriz[0][0] = 'Dato 1';
  2. $matriz[0][1] = 'Dato 2';
  3. $matriz[1][0] = 'Dato 1';
  4. $matriz[1][1] = 'Dato 2';
  5.  
  6. print_r($matriz);  

Código
  1. shellroot@alex-laptop:/var/www/PoC$ php index.php
  2. Array
  3. (
  4.    [0] => Array
  5.        (
  6.            [0] => Dato11
  7.            [1] => Dato12
  8.        )
  9.  
  10.    [1] => Array
  11.        (
  12.            [0] => Dato22
  13.            [1] => Dato23
  14.        )
  15.  
  16. )
  17. 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
  1. $matriz[0][0] = 'Dato11';
  2. $matriz[0][1] = 'Dato12';
  3. $matriz[1][0] = 'Dato22';
  4. $matriz[1][1] = 'Dato23';
  5.  
  6. for ($i = 0; $i < 2; $i++){
  7. for ($j = 0; $j < 2; $j++){
  8. echo $matriz[$i][$j];
  9. }
  10. echo '<br>';
  11. }
Código
  1. shellroot@alex-laptop:/var/www/PoC$ php index.php
  2.  
  3. Dato11Dato12
  4. Dato22Dato23
  5.  
  6. 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
  1. <?php
  2.  
  3. ...
  4.  
  5. switch($id_matriz)
  6. {
  7. case "1":
  8. ...
  9. case "2":
  10. ...
  11. case "3":
  12. ...
  13.  
  14. ...
  15. }
  16.  
  17. ?>
  18.  

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
  1. $matriz[0][0] = 'Dato11';
  2. $matriz[0][1] = 'Dato12';
  3. $matriz[1][0] = 'Dato22';
  4. $matriz[1][1] = 'Dato23';
  5.  
cinco..
Código
  1. $matriz[0][0] = 'Dato11';
  2. $matriz[0][1] = 'Dato12';
  3. $matriz[1][0] = 'Dato22';
  4. $matriz[1][1] = 'Dato23';
  5. $matriz[2][0] = 'Dato32';
  6. $matriz[2][1] = 'Dato33';
  7. $matriz[3][0] = 'Dato42';
  8. $matriz[3][1] = 'Dato43';
  9. $matriz[4][0] = 'Dato52';
  10. $matriz[4][1] = 'Dato53';
  11.  

O los que sean, no lo sé!


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

Código
  1. switch($variable)
  2. {
  3. case numero_de_matrices
  4. }
  5.  

Por ejemplo si hay 2 matrices hacer:
Código
  1. switch($variable)
  2. {
  3. case "1":
  4. ...
  5. break;
  6. case "2":
  7. ...
  8. break;
  9. default:
  10. ...
  11. break;
  12. }
  13.  


Y si por ejemplo hay cinco..
Código
  1. switch($variable)
  2. {
  3. case "1":
  4. ...
  5. break;
  6. case "2":
  7. ...
  8. break;
  9. case "3":
  10. ...
  11. break;
  12. case "4":
  13. ...
  14. break;
  15. case "5":
  16. ...
  17. break;
  18. default:
  19. ...
  20. break;
  21. }
  22.  

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:
Citar
for ($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
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
  1.  
  2. <?php
  3. echo "$a ${$a}";
  4. ?>
  5.  
  6.  

No sabía esto! T.T

Bueno, ahora ya esta el problema arreglado, gracias!