2012-02-13 5 views
1

누군가가 도움을 줄 수 있기를 기대하면서 이러한 MD 배열 주위에서 머리를 터는 데 어려움을 겪고 있습니다. I는 다음 두 번째 레벨 값 뒤에 첫번째 레벨의 키 배열을 출력하는 함수를 생성 할 필요PHP 'mixed'다차원 배열을 멋지게 인쇄하십시오.

$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' 
    ) 
); 

: I처럼 보이는 '설정'파일을 갖는다. 지금 당장 실용적인 문제가 될뿐만 아니라, 솔루션을 아는 것이 아마도 내 뇌의 조각 조각을 시멘트로 묶을 것입니다. :)

그래서 출력은 다음과 같은 내용이어야합니다. 이제)

clusterA의 101 102 103 104 105 106 107 108 201 202 clusterb 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

관련 문제