PHP:foreach循环中的错误是什么?

时间:2017-10-20 18:03:31

标签: php arrays foreach increment

我试图避免使用array_count_values(太慢)来计算出现次数,所以我使用的是foreach循环但是我仍然在下面收到此错误消息,即使结果打印正确!!!

PHP注意:未定义的偏移量:第5行的0 PHP堆栈跟踪:

$somearray=array(0,1,2,3,4,5,6,0,1,2,3,4,0,1,2);
$frequency=array();
foreach($somearray as $key => $val) {
        $frequency[$somearray[$key]]++; //THIS IS LINE 5
    }

print_r($frequency);

尽管抛出了所有抛出的错误消息,它仍能正确打印:

Array
(
    [0] => 3
    [1] => 3
    [2] => 3
    [3] => 2
    [4] => 2
    [5] => 1
    [6] => 1
)

1 个答案:

答案 0 :(得分:3)

通知“Undefined offset:0”是详细的,在 中缀增量 操作之前未设置某些索引(就地添加, $<var>++)虽然常规作业不会导致通知

要取消通知

...
@$frequency[$val]++;

避免 注意

...
$frequency[$val] = (isset($frequency[$val]))? $frequency[$val]+1 : 1;

良好的做法是避免通知,警告,错误......