2011-02-16 2 views
1

JOIN 문의 결과 인 다차원 배열이 있습니다. 그리고 나는 이것을 페이지에 표시하는 깔끔한 방법이 무엇인지 궁금해하고있었습니다.중복 ID를 사용하여 JOIN 문의 결과를 표시하는 PHP 깔끔한 방법

JOIN 때문에 많은 행에 중복 ID가 있으며 페이지에 표시하는 동안 ID가 한 번만 표시됩니다 (나중에이 ID가 중복 될 수 있음).

$job_rows = array(
        array("id" => 1, "output" => "file01", "output_type" => "FBX"), 
        array("id" => 1, "output" => "file02", "output_type" => "JPG"), 
        array("id" => 1, "output" => "file03", "output_type" => "JPG"), 
        array("id" => 2, "output" => "file05", "output_type" => "FBX"), 
        array("id" => 2, "output" => "file06", "output_type" => "JPG"), 
        array("id" => 2, "output" => "file07", "output_type" => "JPG"), 
        array("id" => 3, "output" => "file010", "output_type" => "FBX"), 
        array("id" => 3, "output" => "file011", "output_type" => "JPG") 
       ); 

나는이처럼 표시 할 것 :

내가 그렇게 자신을 명확하게하고 있지 않다 생각의 고유하지 않은 열 다음, 여기에 JOIN에 들어있는 예제 결과

ID : 1 
    OUTPUTS : 
    file01, FBX 
    file02, JPG 
    file03, JPG 
ID : 2 
    OUTPUTS : 
    file05, FBX 
    file06, JPG 
    file07, JPG 
ID : 3 
    OUTPUTS : 
    file010, FBX 
    file011, JPG 

... 등

기본적으로 페이지의 결과를 반향 출력하는 동안 공통 ID를 결합합니다. 감사

+0

중복 http://stackoverflow.com/questions/541472/php-and-outputting-one-to-many-results – rik

답변

1
<?php 
$output = array(); 
foreach ($job_rows as $key => $value) 
{ 
    $output[$value['id']][] = $value['output'] . ", " . $value['output_type']; 
} 

는 꽤 가까이됩니다. 그런 다음 출력 배열을 멋지게 형식화 한 후 루프를 반복 할 수 있습니다. 귀하의 질문에서 알 수 있듯이 당신이 순서대로 ID가됩니다

<?php 

foreach ($output as $id => $data) 
{ 
    echo $id . "\n"; 
    foreach ($data as $k => $v) 
    { 
     echo "\t $v\n"; 
    } 
} 
+0

완벽한 같은 것! 너는 별이야 :) – SIndhu

1

, 당신은 현재 ID 만 출력 ID가 변경된 경우 새 추적 할 수 있습니다.

$curId = -1; 
foreach($job_rows as $row) { 
    if($row['id'] != $curId) { 
     echo 'ID: '.$row['id']."\n\tOUTPUTS : \n"; 
     $curId = $row['id']; 
    } 
    echo "\t".$row['output'].', '.$row['output_type']."\n"; 
} 
+0

이것은 잘 작동하는데, 고마워. – SIndhu

관련 문제