因此,当前,我有一个数组($ 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
答案 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);