Php 使用foreach循环比较两个数组
在PHP中,我将编辑一些实体,比如一个名为:ABC的项目,该项目属于许多国家,同时添加我使用的Php 使用foreach循环比较两个数组,php,mysql,codeigniter-2,Php,Mysql,Codeigniter 2,在PHP中,我将编辑一些实体,比如一个名为:ABC的项目,该项目属于许多国家,同时添加我使用的项目,并将所有选定国家存储在项目国家表中。现在,当我开始编辑此项目时,我使用了相同的逻辑,只做了一点更改: 从国家/地区表填充所有国家/地区 从projectCountries表中获取与projectId关联的所有国家/地区 我得到了两个阵列: Array ( [0] => Array ( [countryId] => 1 [countryName] => Pakistan
项目,并将所有选定国家存储在项目国家表中。现在,当我开始编辑此项目时,我使用了相同的逻辑,只做了一点更改:
Array (
[0] => Array ( [countryId] => 1 [countryName] => Pakistan )
[1] => Array ( [countryId] => 2 [countryName] => China )
)
步骤1的输出
及
步骤2的输出
但我不知道如何证明名为中国的国家已经与该项目有关联(已在
中选择)
因为要创建
我使用了foreach循环。现在我猜不出如何在foreach循环中比较两个数组,以便在
中设置selected=“selected”
选项1:
为步骤1运行foreach循环。在每次迭代中,您都可以迭代第二个数组,并检查是否存在具有当前id的国家(来自第一个循环)
选项2:
将SQL查询更改为类似的内容(例如使用联接):
CountryId CountryName项目ID1巴基斯坦1
2中国1
3德国null
选项1: 为步骤1运行foreach循环。在每次迭代中,您都可以迭代第二个数组,并检查是否存在具有当前id的国家(来自第一个循环) 选项2: 将SQL查询更改为类似的内容(例如使用联接): CountryId CountryName项目ID
1巴基斯坦1
2中国1
3德国null
迭代所有国家/地区,并检查
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;
}
}
迭代所有国家/地区,并检查
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;
}
}