在整个for循环中更改php变量名称

时间:2012-04-12 00:02:55

标签: php

我有一个我想要重命名的数组,以便根据for循环的数字来存储值。我试过这样的事情,但它给了我一个错误。

for ($i =0;$i<4;$i++){

$array.$i = array();

push stuff into array;




}

所以在下一次迭代中,数组被称为array1,然后是array2,依此类推。什么是最好的方法。

4 个答案:

答案 0 :(得分:3)

直接回答你的问题:

$arrayName = 'array' . $i;
$$arrayName = array();
$$arrayName[] = ...

你真正想要的是一个多维数组:

$array[$i] = array();
$array[$i][] = ...;

答案 1 :(得分:0)

您想使用variable variables,其中双美元符号表示变量的名称取自变量。

$varname = "array";
for ($i =0;$i<4;$i++){
    $newvarname = $varname . $i
    $$newvarname = new array()
    push stuff into array;
}

我想补充一点,在这些情况下,更简单的解决方案通常是使用一个数组,其中所需的变量名称是索引。因此,您不必创建$array1$array2等,而是创建:

$arrays = array (
    'array1' => array(stuff),
    'array2' => array(stuff),
    'array3' => array(stuff),
    'array4' => array(stuff)
}

至少,我发现更容易跟踪。

答案 2 :(得分:0)

您应该能够使用变量变量的$$表示法来引用数组(请参阅:http://www.php.net/manual/en/language.variables.variable.php)。

所以,这样的事情应该有效(未经测试):

for ($i =0;$i<4;$i++){

  $thisArrayName = 'array'.$i;
  $$thisArrayName = array();

  push stuff into array;

}

答案 3 :(得分:0)

你需要数组数组

for ($i =0;$i<4;$i++){

   $array[$i] = array();

    push stuff into array;
}