2012-02-13 32 views
1

努力讓我的頭繞着這些MD陣列,所以希望有人可以提供幫助。我有一個「配置」文件看起來像:打印一個PHP混合多維陣列

$clusters = array(
    "clustera" => array(
     '101', 
     '102', 
     '103', 
     '104', 
     '105', 
     '106', 
     '107', 
     '108' 
    ), 
    "clusterb" => array(
     '201', 
     '202', 
     '203', 
     '204', 
     '205', 
     '206', 
     '207', 
     '208' 
    ), 
    "clusterc" => array(
     '301', 
     '302', 
     '303', 
     '304' 
    ), 
    "clusterd" => array(
     '401', 
     '402', 
     '403', 
     '404' 
    ) 
); 

然後我需要創建一個打印第一級陣列的按鍵功能,其次是第二個層次的價值觀。除了現在成爲我的一個實際問題,我認爲知道解決方案可能會鞏固我的大腦碎片)

所以輸出應該是類似的東西(要包裹在一些html的東西,但現在):

101 clusteA在102 103 104 105 106 107 108 201 clusterb 202 203 204 205 206 207 208等等等等

謝謝!

回答

2

這是一個簡單的嵌套foreach循環:

// Outer loop prints cluster name as array key 
foreach ($clusters as $cluster => $array) { 
    echo "$cluster: "; 
    // Inner loop prints space-separated array values 
    foreach ($array as $val) { 
    echo "$val "; 
    } 
} 

這也可以不帶內循環中完成,使用implode()如果你真的只需要空格分隔值:

// Outer loop prints cluster name as array key 
foreach ($clusters as $cluster => $array) { 
    // implode() with a space, and add a trailing space to separate the clusters.... 
    echo "$cluster: " . implode(" ", $array) . " "; 
} 

// clustera: 101 102 103 104 105 106 107 108 clusterb: 201 202 203 204 205 206 207 208 clusterc: 301 302 303 304 clusterd: 401 402 403 404 
+0

第一個示例完美的作品!雖然我嘗試了類似的東西,但是內部數組並沒有成爲數組。我拋棄了代碼,因此不知道我錯在哪裏:)非常感謝,現在我有一個工作示例添加到集合中。 – Seer 2012-02-13 15:45:28