2011-06-25 15 views
0

我想创建一个数组值为: 3,2,1 ....我想使用array_push和forloop。 我写了下面的代码不工作..php数组动态创建不正确的值

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

<?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]; 
?> 

可以请你让我知道我缺少

+0

你的代码正常工作...你在找什么?你的代码输出:** Array([0] => temp0 [1] => temp1 [2] => temp2 [3] => temp3)** – Gowri

+0

@gowri:他需要上面声明的变量的值而不是变量名称本身 –

回答

0

这是你应该如何分配$dd

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

可以请你解释一下这是做什么的: –

+0

$ dd = $ {“temp”。$ i} –

+0

'$ { temp“。$ i}'是引用动态生成的变量名的实际值的方式。这里将调用'temp(n)'变量的值。你也有一个替代方案,只是不要改变你的代码,并在'array_push'行'array_push($ arraytemp,$$ dd);' –

0

$dd有你的变种以字符串形式的名称。要使用此此技术:

array_push($arraytemp,$$dd); 

注重双$$ :)

这里发生的是以下内容:$dd得到由它所包含的字符串替换。所以你的电话

array_push($arraytemp,$dd); 

会做到这一点:

array_push($arraytemp,'temp0'); 

但你希望:

array_push($arraytemp,$temp0); 

所以你需要证明你想要一个acutal $var这个名字,所以你加入$。这只是语法的作品,neccessairy正常字符串而这应该是一个变量

+0

'&&'''''dd前面添加''''''''。错字确定。 –

+0

不正确! (*进行快速编辑狂欢*)。全是骗人的!。Ow等,我的意思是谢谢,我会修复:) – Nanne

+0

添加了一些解释 – Nanne

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]; 

创建具有基于你定义杂物值阵列BLE以上($ 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]; 
0

最简单的方式,通过你的要求是什么打算,虽然你没有指定你想要多少数量的补充。所以for循环将不会以这种方式工作。你最好用一段时间循环。

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