2010-09-16 61 views
3

我的數組是這樣的:約多維數組PHP問題

Array ([Bob] => Red [Joe] => Blue) 

但它可以是任何數量的人,像這樣的:

Array ([Bob] => Red [Joe] => Blue [Sam] => Orange [Carla] => Yellow) 

基本上我想PHP藉此陣列和回聲它使它看起來像這樣:

Bob - Red 
Joe - Blue 
Sam - Orange 
Carla - Yellow 

我知道我需要遍歷數組,這是我試過的:

for ($row = 0; $row < count($array); $row++) { 
echo $array[0] . " - " . $array[1]; 
} 

我得到以下錯誤:未定義抵消:0,未定義抵消:1

我知道這行不通,因爲我試圖使用索引的時候數組的值是字符串。有沒有什麼辦法可以像這樣使用只包含字符串的多維數組的位置索引?

感謝

+1

我認爲這是一個關聯數組,不是多維的... – 2010-09-16 04:10:41

回答

7

你想要的是一個foreach循環。

foreach ($array as $key => $value) { 
    echo $key . ' - ' . $value; 
} 

(如果你想換行,追加"\n"爲末)

你的陣列實際上不是多維。這方面的一個例子是

array(
    array(
     'bob', 
     'tom' 
    ) 
); 

注內陣列陣列

您的陣列通常被稱爲關聯陣列。

+0

你也應該使用'\ n'。 – 2010-09-16 04:29:52

2

,而無需重新檢查我的PHP知識:

foreach($array as $key => $value) { 
    echo "$key - $value<br />\n"; 
} 
+0

你也應該使用'\ n'。 – 2010-09-16 04:15:55

+0

@too很多PHP,就是這樣,是的。謝謝! (編輯。) – 2010-09-16 04:22:25

1

你需要一個foreach

<?php 
$arr = array("bob" => "red", "paul" => "blue", "preo" => "yellow", "garis" => "orange"); 
foreach ($arr as $key => $value) { 
    echo $key ." - ".$value."<br />"; 
} 
?> 

會打印:

bob - red 
paul - blue 
preo - yellow 
garis - orange 

順便說一句,這是一個associative陣列,不是multidimensional之一,這更像是:

$array[1][0][3] 
+0

啊,這工作很好。感謝您的迴應,難怪我找不到任何可行的工作 - 我一直在尋找多維度 – samJL 2010-09-16 04:38:05