猿问

从给出 2 个数组中选择匹配的 id 数组

我有 2 个用 php 编写的数组代码


Array

(

    [qty_ordered] => 12.0000

    [product_id] => 2080

    [product_name] => Watchadmin1

    [product_price] => 1010.0000

)

Array

(

    [qty_ordered] => 11.0000

    [product_id] => 2086

    [product_name] => WatchAdmin88

    [product_price] => 1010.0000

)

Array

(

    [qty_ordered] => 11.0000

    [product_id] => 2076

    [product_name] => admin3

    [product_price] => 1010.0000

)

第二个数组集合是


Array

(

    [entity_id] => 2080

    [sku] => Watchadmin1

    [current_user_id] => 1

)

Array

(

    [entity_id] => 2081

    [sku] => Watchadmin8

    [current_user_id] => 1

)

Array

(

    [entity_id] => 2082

    [sku] => abc

    [current_user_id] => 1

)

当第一个数组的 product_id 和第二个数组的 entity_id 相同时,我想从第一个数组中获取所有产品并存储另一个新数组。恩product_id=2080和entity_id=2080 ,那么这个数组将节省另一个数组。


你能指导我最好的代码吗?


GCT1015
浏览 242回答 2
2回答

鸿蒙传说

您可以使用array_walk和in_array来获得所需的结果$res = [];array_walk($arr1, function($v, $k) use (&$res,$arr2){  in_array($v['product_id'], array_column($arr2, 'entity_id')) ? ($res[] = $v) : '';});

动漫人物

您可以获取实体 ID 和循环以获取过滤的产品$entityIds = $sellercollection->pluck("entity_id");$filter_product = [];foreach ($bestsalecollection as $bestSale) {    if (in_array($bestSale->product_id,$entityIds)) {        $filter_product[] = $bestSale;    }}纯粹在laravel$entityIds = $sellercollection->pluck("entity_id");$filter_product = $bestsalecollection->filter(function ($item) use ($entityIds) {        return in_array(data_get($item, 'product_id'), $entityIds);});这是data_get文档。这是pluck文档。
随时随地看视频慕课网APP
我要回答