Insert in If Else in Foreach Array PHP


Insert in If Else in Foreach Array PHP

问题:当$Current与所有$subs不匹配时插入$Current。

foreach ($array1 as $index=>$Current){
        foreach ($array2 as $key=>$subs){
            echo "'nCurrent: ".$Current; //get current 
            echo "'nsubs: ".$subs; //get subs
            if ($Current== $subs){
                echo "'n++++++'n";
            } else{
                echo "'n====='n";
                $sql = "INSERT INTO `#__table` (user_id, cat_id, subs) VALUES (".$userid.",".$other_array [$index].",".$Current.")";
                echo "'n".$sql;
            }
        }
    }

实际输出为:

Current: 1
subs: 9
=====
INSERT INTO `#__table` (user_id, cat_id, subs) VALUES (1,1,1)
Current: 1
subs: 11
=====
INSERT INTO `#__table` (user_id, cat_id, subs) VALUES (1,1,1)
Current: 1
Subs: 1
+++++

我的预期输出应该是执行 比较当前和子不同后插入sql。 这可能像:

Current: 1
subs: 9
=====
Current: 1
subs: 11
=====
Current: 1
Subs: 1
+++++
// EXECUTE THIS AFTER COMPARING ALL Current and subs *** 
INSERT INTO `#__table` (user_id, cat_id, subs) VALUES (1,1,Current)

那么我应该如何为 foreach 循环编写呢?还是我不应该使用foreach?

请帮忙。谢谢。

如果我理解正确,您希望遍历$Current,如果$Current$subs中不存在,您希望将其插入到数据库中。

尝试使用 in_array 函数,如下所示:

foreach ($array1 as $index=>$Current){
    if (!in_array($Current, $array2))
        echo "'n====='n";
        $sql = "INSERT INTO `#__table` (user_id, cat_id, subs) VALUES (".$userid.",".$other_array [$index].",".$Current.")";
        echo "'n".$sql;
    }
}