我有一个我想要重命名的数组,以便根据for循环的数字来存储值。我试过这样的事情,但它给了我一个错误。
for ($i =0;$i<4;$i++){
$array.$i = array();
push stuff into array;
}
所以在下一次迭代中,数组被称为array1,然后是array2,依此类推。什么是最好的方法。
答案 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;
}