为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
GCT1015 2021-06-13 12:05:23
我有 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 ,那么这个数组将节省另一个数组。你能指导我最好的代码吗?
查看完整描述

2 回答

?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

您可以使用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) : '';

});


查看完整回答
反对 回复 2021-06-25
?
动漫人物

TA贡献1815条经验 获得超10个赞

您可以获取实体 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文档。


查看完整回答
反对 回复 2021-06-25
  • 2 回答
  • 0 关注
  • 241 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信