分享
为什么问答平台  ›  专栏  ›  技术社区  ›  Gimme the 411

如何在不使用each()的情况下重写此函数? - How can I rewrite this function without using each()?

  •  0
  • Gimme the 411  · 技术社区  · 1 周前

    我有一个订单项目数组,我正在折叠该数组,以便重复的行仅显示为一行,行尾有“x 2”或“x 3”等,具体取决于数量。

    代码正在运行,但我收到此警告/错误:

    已弃用 :不推荐使用each()函数。此消息将在以后的呼叫中被抑制…

    我如何重写我的函数以在不使用 () ?

    $order_lean=array_count_values($order);
    $lean = array();
    $str = "";
    $first = 1;
    while(list($key,$val) = each($order_lean)){ // <---
        array_push($lean, "$val x $key");
        if($first){
            $first = 0;
        }else{
            $str .= "\n";
        }
        $str .= "$val x $key";
    }
    return $str;
    
    1 回复  |  直到 1 周前
        1
  •  1
  •   Robo Robok    1 周前

    只需替换您的 while(list($key,$val) = each($order_lean)) { 用:

    foreach ($order_lean as $key => $val) {
    

    资料来源: https://www.php.net/manual/en/control-structures.foreach.php