我有以下代码:
while(...){
$foo='somevalue';
$bar[$foo] = $bar[$foo] + $var;
}
$ foo可以在每次迭代时更改或保持不变,我想要做的是为相同的$ foo添加所有相同的值,但是当我在while循环后计数时,只有1。
我希望数组计数与不同$ foo值的数量相同。 我怎样才能改变它,以免它被覆盖?
编辑:稍后在文件中我要使用foreach ($bar as $key => $value)
我的期望是如果$ foo值改变,使用$bar[$foo] = $bar[$foo] + $var;
将在数组中创建新条目
答案 0 :(得分:0)
你可以使用;
$a = array("10","10","10","60", "2", "2","70");
foreach ($a as $k => $v) {
$bar[$v][] = $k;
}
foreach ($bar as $key => $val) {
echo count($bar[$key]) . "\n";
}
以下是工作演示: phpfiddle
答案 1 :(得分:0)
确定找到解决方案:
问题是数组没有被覆盖只是在$bar=array();
循环内重置所以刚刚添加了is_array
检查
while(...){
if (!is_array($bar))
$bar=array();
$foo='somevalue';
$bar[$foo] = $bar[$foo] + $var;
}
感谢您的帮助