在PHP中,我将编辑一些实体,比如一个名为ABC的项目,这个项目属于许多国家,同时添加这个我使用<select multiple="multiple">的项目,并将所有选定的国家存储在project countries表中。现在,当我开始编辑这个项目时,我使用相同的逻辑,只做了一点改动:
从国家表填充所有国家
从projectCountries表中获取与projectd关联的所有国家
我有两个阵列:

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的输出
但我很困惑如何证明中国已经与该项目相关(已在<select multiple="multiple">中选定)
因为为了创建<select multiple="multiple">我使用了foreach循环。现在我猜不出如何比较foreach循环中的两个数组,以便在selected="selected"中设置<option>

最佳答案

遍历所有国家并检查该国家是否存在于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;
    }
}

关于php - 使用foreach循环比较两个数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11137797/

10-11 06:16