You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从PHP数组提取指定值生成新数组?两种方法对比

PHP购物车数组提取商品代码及方法对比

示例数组

Array
(
    [A1345] => Array
        (
            [name] => Choco Chip Cookies
            [code] => A1345
            [price] => 180
            [quantity] => 1
            [mrp] => 220
        )

    [A1344] => Array
        (
            [name] => Handmade Soap
            [code] => A1344
            [price] => 210
            [quantity] => 1
            [mrp] => 258
        )

)

需求

从上述多维数组中提取所有code字段的值形成新数组,用于用户提交购物车时将商品代码保存到数据库,实际数组规模不固定。

两种实现方法对比

方法1:使用array_column()

$codes = array_column($array, 'code');
print_r($codes);

执行结果:

Array ( [0] => A1345 [1] => A1344 )

方法2:使用array_map()

$result = array_map(
    function($x) {
        return $x['code'];
    }, $array);

print_r($result);

执行结果:

Array ( [A1345] => A1345 [A1344] => A1344 )

优劣分析

  • array_column()是PHP内置的专门用于提取多维数组指定列的函数,代码简洁直观,可读性强,性能也优于自定义回调的array_map()。返回的索引数组完全满足“保存商品代码到数据库”的需求——只需要代码值的集合即可。
  • array_map()需要自定义匿名函数来提取字段,代码相对繁琐。它会保留原数组的键,得到的是键值相同的关联数组,这种结构在你的需求场景下没有额外价值,反而可能增加不必要的处理成本。

综上,优先选择array_column()的实现方式,更贴合你的业务需求且高效简洁。

内容的提问来源于stack exchange,提问作者AbleInfosoft Gmail

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 11:05:17