我有两个数组。其中之一是多维阵列,例如PHP - array_diff一个多维数组和一个平面数组
$products = array(
0 => array(
'product_id' => 33,
'variation_id' => 0,
'product_price' => 500.00
),
1 => array(
'product_id' => 45,
'variation_id' => 0,
'product_price' => 600.00
),
2 => array(
'product_id' => 48,
'variation_id' => 0,
'product_price' => 600.00
),
3 => array(
'product_id' => 49,
'variation_id' => 0,
'product_price' => 600.00
)
);
,我有一个平坦的阵列
$missingItems= array(49,33);
我想从$删除项目的产品,他们的product_id
是在阵列missingItems
字符串。
$diff = array();
foreach ($missingItems as $missingItem) {
foreach ($products as $product) {
if($missingItem != $product['product_id']){
$diff[] = $missingItem;
}
}
}
echo '<pre>';
print_r($diff);
echo '</pre>';
当我这样做时,所有的值都被重复多次。例如如果我在我的第一个数组中有4个项目,而我的第二个项目中有两个。共有8个结果。我只想出现2个,即不存在于第二个数组中的那些。
当我有两个平面阵列我使用array_diff
,但我不知道如何使用它在这种情况下,我有一个多维数组和平面数组。
在你的输出阵列,它应该返回与主键1和2的多维阵列?并删除0和3? –