2012-06-21 74 views
2

在PHP中我會編輯一些實體兩個數組讓說項目命名爲:ABC這個項目屬於多個國家而在加入這個項目,我用<select multiple="multiple">和存儲所有選定的國家projectCountries表。現在,當我開始編輯這個項目,所以我用同樣的邏輯也有一點變化:比較使用的foreach循環

  1. 填入來自國家表中的所有國家
  2. 取從projectCountries表,該表是聯想與專案編號

所有國家我有兩個陣列:

Array ( 
    [0] => Array ([countryId] => 1 [countryName] => Pakistan) 
    [1] => Array ([countryId] => 2 [countryName] => China) 
) 

從步驟-1

輸出

Array ( 
    [0] => Array ([pcId] => 1 [countryId] => 1 [projectId] => 1) 
    [1] => Array ([pcId] => 2 [countryId] => 2 [projectId] => 1) 
) 

從輸出步驟-1

,但我很困惑如何展現評爲中國已經與該項目(在<select multiple="multiple">被選中)

相關,因爲創建<select multiple="multiple">我該國使用foreach循環。現在我無法猜測如何比較foreach循環中的兩個數組,因此我在<option>中設置了selected="selected"

回答

3

迭代所有國家並檢查projectCountries輸出數組上是否存在該國家。

事情是這樣的:

$pc_list = array(); 
foreach($project_countries as $pc) { 
    $pc_list[] = $pc['countryId']; 
} 

foreach($countries as &$country) { 
    if(in_array($country['countryId'], $pc_list)) { 
     $country['selected'] = TRUE; 
    } 
} 
+0

十分感謝好友。 ;) –

+1

謝謝@Filype它像一個魅力 –

1

選項1: 運行step1的foreach循環。在每次迭代中,您都可以遍歷第二個數組,並檢查是否存在具有當前id的國家(來自第一個循環)。

選項2: 您的SQL查詢更改爲類似的東西(有加盟爲例):

CountryId國家或地區名稱專案編號
1巴基斯坦1
2中國1
3德國空