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

时间:2016-03-09 23:38:43

标签: php arrays foreach

如何保存数组,例如

['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并未存储在数组中)

如何在阵列中保存所有这些?我错过了什么?

2 个答案:

答案 0 :(得分:1)

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

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);
}

答案 1 :(得分:1)

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

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

新功能:

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