簡體   English   中英

PHP:如何在有條件的情況下進行foreach?

[英]PHP: How to foreach in foreach with condition?


我有兩個MySQL表,都通過MySQL JOIN連接:

TableA:
hom_id  con_id
3       4
5       3

TableB:
hom_id  con_id  hp_id
3       4       1
3       4       2

我的偽PHP代碼:

foreach ($hom as $h) //from TableA
    echo $h->con_id
---myidea---    
        foreach ($pro as $p) //from TableB
            echo $p->hp_id
        endforeach
---END---
endforeach

我得到的HTML結果是:

Result HTML Table:
con_id      hp_id
3           1 2
4           1 2

我想擁有的是:

result HTML:
con_id      hp_id
3           
4           1 2

我很確定,這只是我必須更改的幾行php代碼。 但我看不到答案,請給我提示如何更改它。 謝謝

如果我對,請猜一個簡單的辦法是否可以解決您的問題。

foreach ($hom as $h) {//from TableA
    echo $h->con_id
    foreach ($pro as $p) { //from TableB
        if ($p->con_id == $h->con_id) {
            echo $p->hp_id
        }
    }
}

或者,也許您應該使用LEFT JOIN在SQL查詢中處理它

您可以使用以下sql語句:

select a.con_id,group_concat(b.hp_id SEPARATOR " ") as hp_id
from tableA a
left join tableB b on(a.hom_id=b.hom_id and a.con_id=b.con_id)
group by a.hom_id,a.con_id

它將根據您的要求給出結果。

您為什么不嘗試更改查詢?

SELECT A.con_id, B.hp_id
FROM A
LEFT JOIN B ON(A.con_id = B.con_id)

並做一個簡單的foreach

foreach($result as $res)
{
    echo $res->con_id, $res->hp_id
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM