如何在不使用 each() 的情况下重写此函数?

How can I rewrite this function without using each()?

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

代码有效,但我得到这个 warning/error:

Deprecated: The each() function is deprecated. This message will be suppressed on further calls...

如何在不使用 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;

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

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

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