2012-04-12 131 views
3

我有一个数组,我想要重命名,以便存储值取决于for循环的编号。我尝试了这样的事情,但它给了我一个错误。在整个循环中更改一个php变量名称

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

$array.$i = array(); 

push stuff into array; 




} 

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

+0

要清楚的数组,你说你要创建四个不同的阵列,名称从$ array1到$ array4? – octern 2012-04-12 00:03:49

+3

使用多维数组。 $ array [$ i] ... – 2012-04-12 00:04:48

+0

正确。我有不同的联赛,有不同的球队。所以我想为每个联盟的每个球队创建一个数组,如果这是有道理的。 – user541597 2012-04-12 00:05:19

回答

3

要字面上回答你的问题:

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

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

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

现货好的先生 – 2012-04-12 00:11:21

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) 
} 

至少,我觉得更容易跟踪。

0

你需要阵列

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

    $array[$i] = array(); 

    push stuff into array; 
}