如何保存数组,例如
['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并未存储在数组中)
如何在阵列中保存所有这些?我错过了什么?
答案 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];
}