2013-04-11 171 views
0

我需要嵌套的一些幫助foreach在PHP中嵌套的foreach()

這是我的代碼:

$program = $_POST['program']; 
$licence = $_POST['licence']; 
    foreach($program as $p){ 
     foreach($licence as $l){ 
mysql_query("INSERT INTO programs (pcname, program, licence) VALUES ('". $pcname ."', '". $p ."', '". $l ."')"); 

    } 
} 

這不工作,我知道是什麼原因。但我找不到解決問題的方法。問題是,它正在經歷foreach內部的所有值,然後是通過它們全部,再次爲外部的下一個值foreach

這可能沒有被很好地解釋,但希望你能理解我正在努力實現的目標,並幫助我。

+0

你期望的行爲,還是想? – Tim 2013-04-11 19:26:56

+0

$ program/$ license是一個數組嗎?我想不是,因爲$ _POST值是字符串。 – Voitcus 2013-04-11 19:27:03

+0

@Voitcus他們是數組,而不是字符串。 – Melloorr 2013-04-11 19:54:43

回答

2

假設你的兩個數組在它們的元素之間有1:1映射,比方說。 5每個,那麼你的嵌套循環將產生25個插入調用。您需要使用鍵從一個數組引用其他:

foreach($program as $key => $p) { 
    $l = $license[$key]; 
    mysql_query(...); 
} 

,請注意您是敞開的sql injection attacks

+0

這個工作就像一個魅力,完全按照我想要的那樣工作,是的,我知道我很樂意接受攻擊,但這隻適用於本地使用,一旦它具備了所有功能,我就會添加這種有用的東西。再次感謝您的回答:) – Melloorr 2013-04-11 19:40:15

+0

$ l = array_shift(license);如果鍵不一樣。 – AlucardTheRipper 2013-04-11 19:47:59

0

糾正我,如果我錯了,但我相信你的問題會簡單地將第一個for循環後,移動你的查詢語句要解決......