循环中codeigniter中的未定义偏移量

时间:2018-05-29 09:54:11

标签: php

我有一个PHP功能如下所示。只显示一个片段

$item_err = array();
for($is = 2; $is <= 10; $is ++)
{
  if($order_no)
  {
    $check_ordr_data =  $this->admin_model->checkOrderNo( array('order_no'=>trim($order_no)) );
    if (( $check_ordr_data ) > 0) 
    {
      echo "hello";
      $item_err[$is] .= ' Order Number  already exists in database ' . $order_no ;
      print_r($item_err);
      echo 'hi'; exit;
    }

  }
}

我得到的输出是

  

你好遇到PHP错误严重性:注意

     

消息:未定义的偏移量:2

     

文件名:controllers / network.php

     

行号:502

     

数组([2] =&gt;订单号已存在于数据库PO-2018-01中)嗨

我无法找出代码段中的错误。任何帮助表示赞赏。

3 个答案:

答案 0 :(得分:1)

在这一行

$item_err[$is] .= ' Order Number  already exists in database ' . $order_no ;

您正在执行.=,这意味着您要连接该值。但$item_err[$is]可能未设置,导致您的错误。

您应该使用常规=

答案 1 :(得分:1)

希望这会对您有所帮助:

错误是因为您试图为$item_err

中的非存在键设置值

替换

$item_err[$is] .=

<强>与

$item_err[] =

整个代码应该是这样的:

$item_err = array();
    for($is = 2; $is <= 10; $is++)
    {
      if($order_no)
      {
          $check_ordr_data =  $this->admin_model->checkOrderNo(array('order_no' => trim($order_no)));
          if (( $check_ordr_data ) > 0) 
          {
              echo "hello";
              $item_err[] = ' Order Number  already exists in database ' . $order_no ;
              print_r($item_err);
              echo 'hi'; exit;
          }
      }
    }

答案 2 :(得分:0)

  

消息:未定义的偏移量:2

此错误由$item_err[$is]引起。在循环开始时,值$is为2.在追加错误时,您尝试为$item_err数组中不存在的键设置值。

你可以做些什么来解决这个错误,而不必担心索引。 $item_err[] = ' Order Number already exists in database ' . $order_no;