从变量中获取动态值

时间:2014-04-21 04:19:59

标签: php loops

在这种情况下我需要你的帮助:

我有这些变量:

$precio_1 = 100.00;
$precio_2 = 150.00;
$precio_3 = 231.50;
$precio_4 = 458.44;
$precio_5 = 123.15;

现在我需要动态地在输入表单中显示它们,但我不知道如何获取变量值。我有这个:

<?php
   for($i=1;$i<=5;$i++)
   {
     //Here I want to do the macrosustitution.
     $precio = 'precio_'.$i;
   ?>
     <label>Precio <?php echo $i;?></label>
     <input type="text" name="<?php echo $precio; ?>" value="<?php echo $precio; ?>"/>
   <?php        
   }
?>

我希望他们的名字是这样的:precio_1,precio_2等 和他们的价值观:100.00,150.00等。

谢谢大家,请原谅我的写作和糟糕的PHP知识。

3 个答案:

答案 0 :(得分:1)

在这里你可以使用一个命名变量:

这对你有用:

<?php

$precio_1 = 100.00;
$precio_2 = 150.00;
$precio_3 = 231.50;
$precio_4 = 458.44;
$precio_5 = 123.15;

   for($i=1;$i<=5;$i++)
   {
     //Here I want to do the macrosustitution.
     $p = 'precio_'.$i;
     $precio = $$p; // use a named variable
   ?>
     <label>Precio <?php echo $i;?></label>
     <input type="text" name="<?php echo $precio; ?>" value="<?php echo $precio; ?>"/>
   <?php        
   }
?>

一个有效的PHP示例here

答案 1 :(得分:0)

当您的应用程序扩展时,您将无法维护所有这些变量。请使用数组,并以这样的方式命名键。

$arr = array('precio_1' => 100.00, 'precio_2' => 150.00);

所以你可以轻松访问它们,比如..

echo $arr['precio_1']; 
echo $arr['precio_2']; 

所以......

您还可以在阵列上使用extract()

<?php
$arr = array('precio_1' => 100.00, 'precio_2' => 150.00);
extract($arr);
echo $precio_1; //"prints" 100.00

使用foreach使事情变得更容易......

<?php
$arr = array('precio_1' => 100.00, 'precio_2' => 150.00);
$i=0;
foreach($arr as $k=>$v)
{
    ?>
    <label>Precio <?php echo ++$i;?></label>
    <input type="text" name="<?php echo $arr[$k]; ?>" value="<?php echo $arr[$k]; ?>"/>
<?php
}
?>

<强> OUTPUT :

enter image description here

答案 2 :(得分:0)

试试这个:

$arr = array('precio_1' => 100.00, 'precio_2' => 150.00, 'precio_3' => 231.50, 'precio_4' => 458.44, 'precio_5' => 123.15);

for($i = 0; $i < count($arr); $i++){
$precio = 'precio_'.$i;
<label>Precio <?php echo $i;?></label>
     <input type="text" name="<?php echo $precio; ?>" value="<?php echo $arr[$i]; ?>"/>

}