Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用foreach循环比较两个数组_Php_Mysql_Codeigniter 2 - Fatal编程技术网

Php 使用foreach循环比较两个数组

Php 使用foreach循环比较两个数组,php,mysql,codeigniter-2,Php,Mysql,Codeigniter 2,在PHP中,我将编辑一些实体,比如一个名为:ABC的项目,该项目属于许多国家,同时添加我使用的项目,并将所有选定国家存储在项目国家表中。现在,当我开始编辑此项目时,我使用了相同的逻辑,只做了一点更改: 从国家/地区表填充所有国家/地区 从projectCountries表中获取与projectId关联的所有国家/地区 我得到了两个阵列: Array ( [0] => Array ( [countryId] => 1 [countryName] => Pakistan

在PHP中,我将编辑一些实体,比如一个名为:ABC的项目,该项目属于许多国家,同时添加我使用的
项目,并将所有选定国家存储在项目国家表中。现在,当我开始编辑此项目时,我使用了相同的逻辑,只做了一点更改:

  • 从国家/地区表填充所有国家/地区
  • 从projectCountries表中获取与projectId关联的所有国家/地区
  • 我得到了两个阵列:

    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项目ID
    1巴基斯坦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;
        }
    }