3

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

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

$array.$i = array();

push stuff into array;




}

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

4

4 回答 4

3

从字面上回答你的问题:

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

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

$array[$i] = array();
$array[$i][] = ...;
于 2012-04-12T00:07:06.053 回答
0

您想使用变量 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)
}

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

于 2012-04-12T00:05:58.090 回答
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;

}
于 2012-04-12T00:09:03.850 回答
0

你需要数组数组

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

   $array[$i] = array();

    push stuff into array;
}
于 2012-04-12T00:11:00.160 回答