我有两个数组,我需要从更大的数组中移除更小的数组
$a = array(223 => 6, 381 => 6);
第二个数组是:
$b = array(array('id' => 45, 'username' => 'rock'), array('id' => 223, 'username' => 'pop'), array('id' => 381, 'username' => 'stock'));
使用 print_r() 它们看起来像这样
Array
(
[223] => 6
[381] => 6
)
Array
(
[0] => Array
(
[id] => 45
[username] => rock
)
[1] => Array
(
[id] => 223
[username] => pop
)
[2] => Array
(
[id] => 381
[username] => stock
)
)
如何从 $b 数组中删除 id != $a[keys] 所以结果我会有这样的数组
Array
(
[0] => Array
(
[id] => 223
[username] => pop
)
[1] => Array
(
[id] => 381
[username] => stock
)
)
我尝试使用 array_diff、array_search 和 unset,但不知道它是如何工作的。
最佳答案
因此,您想过滤掉没有 $a[$sub_array["id"]]
的值存在,其中 $sub_array
是 $b
的一个元素:
然后 array_filter()
是您搜索的内容:
$array = array_filter($b, function ($val) use ($a) {
return isset($a[$val["id"]]);
});
关于php - 比较两个数组并从 PHP 中的数组中删除数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26023673/