在PHP中,我将编辑一个实体,假设一个名为:ABC 的项目,这个项目属于许多国家,同时添加我使用的<select multiple="multiple">
项目并将所有选定的国家/地区存储在 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 )
)
步骤2的输出
但我很困惑如何证明名为China的国家已经与该项目相关联(已在<select multiple="multiple">
中选择)
因为创建了<select multiple="multiple">
我使用了 foreach 循环。现在我无法猜测如何比较 foreach 循环中的两个数组,以便在selected="selected"
中设置<option>
。
答案 0 :(得分: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;
}
}
答案 1 :(得分:1)
选项1: 运行foreach循环for step1。在每次迭代中,您都可以遍历第二个数组并检查是否存在具有当前id的国家/地区(来自第一个循环)。
选项2: 将SQL-Query更改为类似的内容(例如,使用连接):
CountryId CountryName ProjectId
1巴基斯坦1
2中国1
3德国null