2010-10-07 66 views
3

比方說,我想管理多維數組像(僞代碼):如何初始化一個PHP二維數組

Array $colors 
* wine,red 
* cheese,yellow 
* apple, green 
* pear,brown 

可以使用什麼樣的代碼,以避免下面的符號,初始化數組(假定會有元件的硬編碼的列表=?:

$colors[x][y] = 'something'; 

回答

4
$array = array(
    array('wine', 'red'), 
    array('cheese', 'yellow'), 
    array('apple', 'green'), 
    array('pear', 'brown') 
); 

UPD:

foreach ($array as $v) { 
    echo $v[0]; // wine, cheese... 
    echo $v[1]; // red, yellow... 
} 
+0

亞歷山大我需要從每一組件的訪問這兩個項目... 通過編碼$陣列[「酒」]將有可能進入「紅色」 ....你會如何訪問「酒」,在foreach循環? – Riccardo 2010-10-07 14:29:32

+1

foreach($ array爲$ item){echo $ item}將會返回紅色黃色綠色棕色.....如何返回嗚嗚聲,奶酪,蘋果和梨? – Riccardo 2010-10-07 14:42:21

+0

對不起。查看我的更改。 – pltvs 2010-10-07 14:42:32

0
$colors = array(
    array('wine' => 'red', 
     'cheese' => 'yellow', 
     'apple' => 'green', 
     'pear' => 'brown' 
    ) 
); 
+3

第一個數組是多餘的 – Incognito 2010-10-07 14:27:35

3

假設你不想關聯數組作爲你的問題沒有提到它。

這是優雅的語法PHP使得可供選擇:

<?php 
$colors = array(array("wine","red"), 
       array("cheese","yellow"), 
       array("apple", "green"), 
       array("pear", "brown")); 

print_r($arr); // Prints out an array as shown in output 
?> 

輸出:

Array 
(
    [0] => Array 
     (
      [0] => wine 
      [1] => red 
     ) 

    [1] => Array 
     (
      [0] => cheese 
      [1] => yellow 
     ) 

    [2] => Array 
     (
      [0] => apple 
      [1] => green 
     ) 

    [3] => Array 
     (
      [0] => pear 
      [1] => brown 
     ) 

) 

要遍歷訪問所有的0:

for($x = 0; $x < count($colors); $x++){ 
    echo $colors[$x][0]; 
} 

或者

for($colors as $couple){ 
    echo $couple[0]; 
} 

編輯:好像你實際上可能是有關聯,雖然破越好..

$colors = array("wine" => "red", 
       "cheese" => "yellow", 
       "apple" => "green", 
       "pear" => "brown"); 

因爲你仍然可以訪問關鍵,因爲這樣:

for($colors as $key => $value){ 
     echo $key . " is " . $value; 
    } 
+1

尼斯樣本,它顯示瞭如何初始化數組,但是我仍然缺少如何訪問foreach循環中的「左列」,一旦數組已經初始化... – Riccardo 2010-10-07 14:53:31

+1

更新了一個循環的例子.. – 2010-10-07 14:56:13

+0

我希望我可以避免for循環,只使用foreach。好的,無論如何!謝謝 - Riccardo 0秒前 – Riccardo 2010-10-07 14:58:55