将数据与数据库中的数组进行比较后,如何从单个数组中删除数据?

时间:2019-06-06 23:15:57

标签: php arrays

因此,当前,我有一个数组($ array1),我想与通过从数据库中检索数据创建的数组($ array2)进行比较。从技术上讲,$ array2是多维的,因为我在mysqli_fetch_assoc中使用了while循环。有什么办法可以将这两个数组相互比较吗?我的最终目标是比较这两个数组,并且仅在出现不匹配时才从单个数组($ array1)中删除数据。这样,我的意思是只删除与$ array2不匹配的数据。

例如: $ array1 =数组([0] =>饼干[1] =>鸡肉[2] =>特斯拉) $ array2 =数组([name] => tesla)Array([name] => bmw)Array([name] => opel)

因此,在这种情况下,$ array2来自数据库,并且给出了$ array1。那么,如何比较这两个数组才能获得该数组:$ arraynew = Array([0] => tesla)?

注意: 到目前为止,我已经尝试过:

            $query = "SELECT name FROM tagsbreedables WHERE idTagCategory = 6";
            $result10 = mysqli_query($conn, $query);

            if (mysqli_num_rows($result10) > 0) {
                while ($row = mysqli_fetch_assoc($result10)) {
                    $bloem = $datas4['name'] = $row;

                    print_r($row);

                    $subarray = array_column($bloem,'name');

                    print_r($array3);

                }
            }


        $aMust = explode(" ", $_GET['q']);
        $searchTermBits = array();
        foreach ($aMust as $term) {
            $term = trim($term);
            if (!empty($term)) {
                $searchTermBits[] = "$term";
            }
        }
        $matches = $searchTermBits;
        $test = array($subarray, $matches);



        foreach ($test as $key => $subarray) {
            foreach ($subarray as $subsubarray) {
                foreach ($matches as $match) {
                    if ($subsubarray == $match) {
                        $finalarr[$key][] = $subsubarray;
                    }
                }
            }
        }
        print_r($finalarr[0]);

        $pindakaas = implode('","',$finalarr[0]);
        echo $pindakaas;

代码很好用,只是我不知道如何从数据库中获取数据到$ subarray中...我只是得到Array()Array()...对于$ array3

1 个答案:

答案 0 :(得分:1)

如果$ array2是如下数组的数组

array(Array ( [name] => tesla ) Array ( [name] => bmw ) Array ( [name] => opel ))

您可以使用函数array_column从单个列(在这种情况下为name)中获取值。

$array3 = array_column($array2,'name')

以上应该给你

array(0=>tesla,1=>bmw,2=>opel)

然后您可以使用array_intersect进行比较

$arraynew = array_intersect($array1,$array3);