2011-02-16 50 views
1

我有一個多維數組,這是一個JOIN語句的結果。我想知道什麼是在頁面上顯示這種簡潔的方式。PHP整潔的方式顯示JOIN語句的重複ID的結果

由於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") 
       ); 

我想是這樣顯示的:

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 2011-02-16 14:53:11

回答

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

會得到相當接近了。然後,在將輸出數組格式化得很好之後,可以循環執行。

<?php 

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

完美!你是明星:) – SIndhu 2011-02-16 14:59:46

1

如果你有你自己的ID,以便你的問題建議,那麼你就可以跟蹤當前的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 2011-02-16 15:05:17