我有一个要重命名的数组,以便根据 for 循环所在的数字存储值。我尝试了这样的事情,但它给了我一个错误。
for ($i =0;$i<4;$i++){
$array.$i = array();
push stuff into array;
}
所以在下一次迭代中,数组被称为array1,然后是array2,依此类推。做这个的最好方式是什么。
我有一个要重命名的数组,以便根据 for 循环所在的数字存储值。我尝试了这样的事情,但它给了我一个错误。
for ($i =0;$i<4;$i++){
$array.$i = array();
push stuff into array;
}
所以在下一次迭代中,数组被称为array1,然后是array2,依此类推。做这个的最好方式是什么。
从字面上回答你的问题:
$arrayName = 'array' . $i;
$$arrayName = array();
$$arrayName[] = ...
你真正想要的是一个多维数组:
$array[$i] = array();
$array[$i][] = ...;
您想使用变量 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)
}
至少,我发现跟踪起来更容易。
您应该能够使用变量变量的 $$ 表示法来引用数组(参见: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;
}
你需要数组数组
for ($i =0;$i<4;$i++){
$array[$i] = array();
push stuff into array;
}