【问题标题】:Pull an element of an array according to one of the matches [duplicate]根据其中一个匹配项拉出数组的元素[重复]
【发布时间】:2019-09-16 12:41:53
【问题描述】:

我有两个数组:

$productIds = [
    ['product_id' => 12, 'price' => 1234],
    ['product_id' => 13, 'price' => 1235],
    ['product_id' => 14, 'price' => 1236]
];

$ids = [12, 14];

然后我迭代数组 $ids 并且必须从数组 $productIds 按产品 ID 提取我需要的数组:

$data = [];
foreach ($ids as $id) {
    $data[] = ... // get data by $id (equal 'product_id') from $productIds
}

在输出时,我想得到这样一个数组:

$data = [
    ['product_id' => 12, 'price' => 1234],
    ['product_id' => 14, 'price' => 1236]
];

但解决方案必须没有嵌套循环(foreach)。

【问题讨论】:

标签: php arrays multidimensional-array filter array-filter


【解决方案1】:

你可以这样做,

        $productIds = array_column($productIds,null,"product_id");
        $result = [];
        foreach($ids as $id){
            $result[] = $productIds[$id];
        }

【讨论】:

  • 比我更好的解决方案。+1
猜你喜欢
  • 2021-05-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-31
  • 1970-01-01
  • 2018-08-19
  • 1970-01-01
相关资源
最近更新 更多