2012-04-12 104 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; 
}