PHP 如何在应用 foreach 函数时保存数组中的所有值


php how to save all the values inside an array when applying a foreach function?

例如

,如何保存数组,

['name' => 'Some_name_1', 'Quantity' => 176],
['name' => 'some_name_2', 'Quantity' => 1096],
['name' => 'some_name_3', 'Quantity' => 1598],

从foreach循环?

例如,我通过应用以下形式的 array_count_values() 函数从另一个数组中获取这些值:

Array
(
    [Some_name_1] => 176
    [Some_name_2] => 1096
    [Some_name_3] => 1598
)

当我像这样应用foreach()

foreach($values as $index => $value){
        $stats=['name'=>$index,'Quantity'=>$value];
    }

我只得到存储在新数组中的一个值,而不是三个值。

Array
(
    [name] => Some_name_3
    [Quantity] => 1598
)

(Some_name_1,Some_name_2未存储在数组中)

如何将所有这些保存在数组中?我错过了什么?

推送到数组,你的语法不正确。

foreach(values as $index=>$value)
{
    array_push($stats, array('name'=>$index, 'quantity'=>$value));
}

或者正如 Matt 上面所说,替代语法:

foreach(values as $index=>$value)
{
    $stats[] = array('name'=>$index, 'quantity'=>$value);
}

在 foreach 循环中,您不会附加到数组中 - 而是在每次迭代值数组时覆盖。

使用下面的示例追加到数组而不是覆盖。

新功能:

foreach($values as $index => $value){
        $stats[]=['name'=>$index,'Quantity'=>$value];
    }