我有一个多维数组。
第一个阵列:
$product_array = array(
[0] => array(
[product_id] => 1
),
[1] => array(
[product_id] => 2
),
[2] => array(
[product_id] => 3
)
);
第二阵列:
$product_id = array(
'1',
'3'
);
如果发现$product_array
时间返回product_id
的结果,我希望将product_id
的所有数据与$product_array
键匹配。
预期产出:
array(
[0] => array(
[product_id] => 1
),
[2] => array(
[product_id] => 3
)
);
只想使用一个foreach循环。
有可能吗?
答案 0 :(得分:2)
您可以使用array_filter()
$matching_array = array_filter($product_array,function($val) use($product_id){
return in_array($val['product_id'],$product_id);
});
print_r($matching_array);
输出
Array
(
[0] => Array
(
[product_id] => 1
)
[2] => Array
(
[product_id] => 3
)
)
答案 1 :(得分:0)
答案 2 :(得分:0)
最简单,最快捷的解决方案是,根据需要使用foreach
:
foreach( $product_array as $key => $value ){
$prid = $value['product_id'];
if( !in_array( $prid , $product_id ) ) unset( $product_array[$key] );
}