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

如何不使用each()重写合并订单重复项的PHP函数?

解决each()函数弃用问题,重写订单项合并代码

Hey there, 我来帮你搞定这个each()弃用的问题~PHP 7.2之后each()就被官方弃用了,咱们用更现代的foreach循环来替代就行,完全能保留原代码的所有功能。

重写后的完整代码

function mergeOrderItems($order) {
    $order_lean = array_count_values($order); 
    $lean = array(); 
    $str = ""; 
    $first = 1; 

    // 用foreach替代弃用的each()循环
    foreach ($order_lean as $item => $count) {
        array_push($lean, "$count x $item"); 
        if ($first) {
            $first = 0;
        } else {
            $str .= "\n";
        }
        $str .= "$count x $item";
    } 

    return $str;
}

关键改动说明

  • 核心替换:把原来依赖each()的while循环,换成了PHP推荐的foreach遍历方式。这里$item对应原代码里的$key(订单项的具体内容),$count对应原代码里的$val(该项的重复次数),逻辑完全匹配原代码。
  • 保留所有原有逻辑:包括维护$lean数组、控制首项不换行的$first标记,确保最终输出的字符串和原代码的结果完全一致。

小提示:原代码里的$lean数组在函数里没有被后续使用,如果你的业务场景不需要它,可以考虑删除这部分代码,精简实现~

内容的提问来源于stack exchange,提问作者Gimme the 411

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 08:04:59