Codeigniter 遇到 PHP 错误

Codeigniter A PHP Error was encountered

我收到以下错误

A PHP Error was encountered Severity: Notice Message: Undefined offset:3

最后一行错误

private function date_conversion($str){
  $this->lang->load('calendar');
    $arr = explode(' ', $str);
    $month = array(
        $this->lang->line('cal_january') => '01', $this->lang->line('cal_february') => '02', $this->lang->line('cal_march') => '03', 
        $this->lang->line('cal_april') => '04', $this->lang->line('cal_may') => '05', $this->lang->line('cal_june') => '06', 
        $this->lang->line('cal_july') => '07', $this->lang->line('cal_august') => '08', $this->lang->line('cal_september') => '09', 
        $this->lang->line('cal_october') => '10', $this->lang->line('cal_november') => '11', $this->lang->line('cal_december') => '12', 
    );
    return $arr[3].'-'.$month[$arr[2]].'-'.($arr[1]<10?'0'.$arr[1]:$arr[1]);
 }

和第一个过程来自这个

'date_of_birth'=>$field['adult']['date_of_birth']?$this->date_conversion($this->input->post('adult_date_of_birth_'.$i)):NULL,

怎么了?

可能 $arr 没有索引 3,如果你知道它只有 3 个元素,那么索引 2 就是 2

变化: return $arr[3].'-'.$month[$arr[2]].'-'.($arr[1]<10?'0'.$arr[1]:$arr[1]);

对于: return $arr[2].'-'.$month[$arr[1]].'-'.($arr[0]<10?'0'.$arr[0]:$arr[0]);

您只是假设要分解成数组的字符串有 4 个部分。像 "My Nice String" 这样的字符串最终会变成一个数组 ("My", "Nice", "String");其中索引 0 的值为 "My",索引 1 的值为 "Nice,索引 2 的值为 "String".

请注意,数组索引是从零开始的,这意味着第一个元素通常以索引 0 开头,而不是 1。除非数组的定义不同。