php数组动态创建不正确的值

时间:2011-06-25 05:56:41

标签: php

我想创建一个包含值的数组: 3,2,1 ....我想使用array_push和forloop。 我写了以下代码不能正常工作..

============

<?PHP
$temp0=3;
$temp1=2;
$temp2=1;
$temp3=1;
$temp4=1;
$temp5=1;

$arraytemp=array();

for($i=0;$i<4;$i++)
{
$r="temp";
$dd=$r.$i;
array_push($arraytemp,$dd);
}
echo $arraytemp[3];
?>
你可以告诉我我缺少的东西

4 个答案:

答案 0 :(得分:0)

这是您应该如何分配$dd

for($i=0;$i<4;$i++)
{
  $dd=${"temp".$i};
  array_push($arraytemp,$dd);
}

答案 1 :(得分:0)

您的$dd将var的名称作为字符串。你想用这个技术:

array_push($arraytemp,$$dd);

注意双$$:)

此处发生的情况如下:$dd被其包含的字符串替换。所以你的电话

    array_push($arraytemp,$dd);

会这样做:

   array_push($arraytemp,'temp0');

但你想要这个:

   array_push($arraytemp,$temp0);

因此您需要显示您想要一个具有该名称的实际$var,因此您需要添加$。这只是语法的工作方式,需要区分普通字符串和应该是变量的字符串

答案 2 :(得分:0)

混淆了你想在这里实现的目标,你想:

使用值创建数组:temp0,temp1,temp2 ......

for($i=0;$i<4;$i++){
    array_push($array,"temp{$i}");
}
echo $array[3];

使用值创建数组:0,1,2,3 ..

for($i=0;$i<4;$i++){
    array_push($array,$i);
}
echo $array[3];

根据上面定义的变量($ temp0,$ temp1 ...)

创建包含值的数组
$temp0=3;
$temp1=2;
$temp2=1;
$temp3=1;

$array = array();
for($i=0;$i<4;$i++){
    $val = "temp{$i}";
    array_push($array,$$val);
}
echo $array[3];

答案 3 :(得分:0)

最简单的方法,按照您要求的方式进行,但您没有指定要添加的数量。所以for循环不会这样。你最好用一个循环。

$foo = array();
$i = 1;
while (some end condition) {
   array_push($foo, $i);
   $i++;
}
print_r($foo);