PHP:根据自定义条件查找并删除重复的多维数组元素
这是我的阵列:PHP:根据自定义条件查找并删除重复的多维数组元素,php,multidimensional-array,duplicates,Php,Multidimensional Array,Duplicates,这是我的阵列: $productsArray = [ '0' => [ 'id' => 1, 'code' => 1000, 'in_promo' => 1, ], '1' => [ 'id' => 2, 'code' => 1000, 'in_promo' => 3, ], ]; 我需要检查是否有具有相同'code'和
$productsArray = [
'0' => [
'id' => 1,
'code' => 1000,
'in_promo' => 1,
],
'1' => [
'id' => 2,
'code' => 1000,
'in_promo' => 3,
],
];
我需要检查是否有具有相同
'code'
和'in_promo'=>1
和3
的元素,并删除具有'in_promo'=>1
的元素,以支持具有'in_promo'=>3
的元素。如何使用PHP数组函数实现这一点提前感谢。来自php.net文档:“请注意,array_unique()不适用于多维数组。”我还需要应用自定义条件。您能在额外输入的同时发布预期输出吗
$productsArray = [
'0' => [
'id' => 1,
'code' => 1000,
'in_promo' => 1,
],
'1' => [
'id' => 2,
'code' => 1000,
'in_promo' => 3,
],
'10' => [
'id' => 3,
'code' => 1000,
'in_promo' => 2,
],
'11' => [
'id' => 4,
'code' => 1001,
'in_promo' => 3,
],
];
$hasPromoNeedle = array_filter($productsArray, function (array $array)
{
return in_array($array['in_promo'], [1, 3]);
});
print_r(array_filter($hasPromoNeedle, function (array $array1, $k1) use ($hasPromoNeedle) {
foreach ($hasPromoNeedle as $k2 => $array2)
{
if ($array1['code'] == $array2['code'] and $k1 != $k2)
{
return true;
}
}
return false;
}, ARRAY_FILTER_USE_BOTH ));