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

我有两个数组:

$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
最近更新 更多