我有一组值按照它们发生的顺序推入数组
$valsArray = array();
//I process each value from a file (code removed for simplicity)
//and then add into the array
$valsArray[] = $val;
如何将值转换为关联数组,而不是仅在不存在的情况下插入值(如$key of associative array
)。如果确实存在,则将其计数($value of associative array
)递增1.我试图找到一种更有效的方法来处理这些值,而不是我现在正在做的事情。
答案 0 :(得分:5)
$ valsArray = array_unique($ valsArray);
答案 1 :(得分:4)
@$valsArray[$val]++;
应该为你做。新条目作为键添加,值为1,现有条目的值增加。 @避免每次遇到新值时抛出E_NOTICE。
答案 2 :(得分:3)
当您循环使用您的值时,您可以执行以下操作:
isset( $valsArray[$val] ) ? $valsArray[$val]++ : $valsArray[$val]=1;
示例:
$valsArray=array();
$val="foo";
isset($valsArray[$val])?$valsArray[$val]++:$valsArray[$val]=1;
$val="foo";
isset($valsArray[$val])?$valsArray[$val]++:$valsArray[$val]=1;
$val="bar";
isset($valsArray[$val])?$valsArray[$val]++:$valsArray[$val]=1;
print_r($valsArray);
会得到你:
Array ( [foo] => 2 [bar] => 1 )
答案 3 :(得分:1)
当你完成添加时,你不能只是$valsArray = array_unique($valsArray);
吗?或者你需要按正确的顺序保持按键吗?
答案 4 :(得分:0)