Выберите соответствующие массивы идентификаторов из дать 2 массива - PullRequest
0 голосов
/ 20 мая 2019

у меня есть 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 второго массива будут одинаковыми.ex product_id=2080 и entity_id=2080 тогда этот массив сохранит другой массив.

Можете ли вы указать мне лучший код?

Ответы [ 2 ]

1 голос
/ 20 мая 2019

Вы можете использовать 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) : '';
});

Live Demo

0 голосов
/ 20 мая 2019

Вы можете получить идентификатор сущности и цикл для получения отфильтрованных продуктов

$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 doc.

Вот хуйня документ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...