PHP: Undefined offset

后端 未结 4 589
感动是毒
感动是毒 2020-12-20 02:55

On some pages, i receive the error:

PHP Notice: Undefined offset: 1 in /var/www/example.com/includes/head.php on line 23

Here

相关标签:
4条回答
  • 2020-12-20 03:02

    My answer is not specific to your code. For others who get this error while trying to use specific elements of array you created, try indexing your elements while creating the array itself. This helps you to explode/print a specific element/do whatever you want with the array.

    0 讨论(0)
  • 2020-12-20 03:22
    list($r1, $r2) = explode(" ", $r[0],2);
    

    When supplied with two variables, list() will need an array with at least 2 items.
    However, as the error you mentioned indicates, your explode() call seems to return an array with only one item.

    You will have to check the contents of $r[0] to make sure it actually contains your splitting character or manually assign $r1 and $r2 with sanity checks.

    0 讨论(0)
  • 2020-12-20 03:28

    The undefined index error you are receiving is because the offset that you're trying to explode in the variable ($r) doesn't exist.

    You can check what $r is by doing the following:

    print_r($r);
    

    or

    var_dump($r);
    

    You'll need to show what $r holds before debugging this issue further.

    But a guess would be that your $r variable is a string that you're trying to explode, but you're trying to access it as an array.

    What happens if you explode it like this:

    list($r1, $r2) = explode(' ', $r, 2);
    
    0 讨论(0)
  • 2020-12-20 03:28

    Try:

    $words = explode(' ', $r[0], 2);
    $r1 = isset($words[0]) ? $words[0] : '';
    $r2 = isset($words[1]) ? $words[1] : '';
    

    If $r[0] doesn't contain 2 words, your code will get an error because explode() will return an array with just one element, and you can't assign that to two variables. This code tests whether the word exists before trying to assign it.

    0 讨论(0)
提交回复
热议问题