【问题标题】:Undefined Offset: 1 while iterating through an array未定义的偏移量:1 在遍历数组时
【发布时间】:2026-02-15 11:05:03
【问题描述】:

这是一个相对简单的问题,但我希望能深入了解发生此错误的原因。下面是引发错误的代码:

    foreach($courseArray[0] as $value)
    {
        list( $courseQuarter,$coursePrefix ) = explode( "-", $value );
        if( $courseQuarter == get_current_yearquarter()) 
        {
                array_push( $return, $value );
        }
    }

该错误具体来自list() 行。

这是$courseArray 中的var_export()

array ( 0 => array( 
          'count' => 15, 
          0 => '20103-0610-442-01', 
          1 => '20103-0508-446-01', 
          2 => '20103-0501-406-01', 
          3 => '20104-0660-499-01', 
          4 => '20111-0307-782-70', 
          5 => '20111-0610-870-01', 
          6 => '20111-0621-504-01', 
          7 => '20112-0621-513-01', 
          8 => '20112-0303-762-90', 
          9 => '20112-0101-794-71', 
          10 => '20112-0610-710-90', 
          11 => '20113-0307-770-70', 
          12 => '20113-0610-820-01', 
          13 => '20113-0617-631-01', 
          14 => '2121-0106-744-01', 
      ), 
);

感谢您在修复我的代码时提供的任何帮助 :) 我想我可以解释一下偏移量以及它们与数组的关系。

【问题讨论】:

    标签: php arrays list foreach offset


    【解决方案1】:

    它将遍历“count”元素,其中没有“-”。

    foreach($courseArray[0] as $key => $value)
    {
        if ($key == 'count') {continue;} // <- skip the 'count' key
        list( $courseQuarter,$coursePrefix ) = explode( "-", $value );
        if( $courseQuarter == get_current_yearquarter()) 
        {
                array_push( $return, $value );
        }
    }
    

    【讨论】:

    • 或更笼统地说,检查-if (strpos($value, '-') === FALSE) {continue;}
    • 谢谢!我与@MichaelBerkowski 的编辑一起使用了这个版本。尽快为您接受答案。