繁体   English   中英

PHP:foreach循环中有什么错误?

[英]PHP: What is the error in the foreach loop?

我试图避免使用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
)

通知“未定义的偏移量:0”很冗长,在进行固定增量操作(就地加法, $<var>++ )之前未设置某些索引,而常规赋值不会导致注意

禁止通告

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

为了避免 通知

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

好的做法是避免出现提示,警告,错误...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM