Как я могу переписать эту функцию без использования each ()? - PullRequest
0 голосов
/ 09 июня 2019

У меня есть массив элементов заказа, и я сворачиваю этот массив, чтобы дублированные строки отображались в виде только одной строки с «x 2» или «x 3» и т. Д. В конце строки в зависимости от количества.

Код работает, но я получаю это предупреждение / ошибку:

устарело : функция each () устарела.Это сообщение будет подавлено при последующих вызовах ...

Как я могу переписать свою функцию, чтобы она работала так же, не используя 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 голос
/ 09 июня 2019

Просто замените while(list($key,$val) = each($order_lean)) { на:

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

Источник: https://www.php.net/manual/en/control-structures.foreach.php

...