2014-01-13 65 views
0

如何解决这个未定义的偏移量错误。php - 未定义的偏移量

我得到:234Undefined offset 0 - 44, on line 234.

行看起来是这样的:

$mysql['invo_mysql_where'] .= ($x > 0 ? " OR " : '')."`id` = {$mysql['inactive'][$x]}"; 

代码的整个部分,看起来是这样的:

shuffle($mysql['inactive']); 
     for($x = 0, $l = $mysql['inactive_amount']; $x < $l; $x++){ 
      $mysql['invo_mysql_where'] .= ($x > 0 ? " OR " : '')."`id` = {$mysql['inactive'][$x]}"; 
     } 

$mysql_inactive

$mysql['inactive'] = array(); 
     if($ile == 10){ 
      $mysql['inactive_amount'] = mt_rand(0, 1); 
     } else if($ile == 20){ 
      $mysql['inactive_amount'] = mt_rand(0, 2); 
     } else if($ile == 30){ 
      $mysql['inactive_amount'] = mt_rand(0, 3); 
     } else if($ile == 40){ 
      $mysql['inactive_amount'] = mt_rand(0, 4); 
     } else if($ile == 50){ 
      $mysql['inactive_amount'] = mt_rand(0, 4); 
     } else if($ile == 60){ 
      $mysql['inactive_amount'] = mt_rand(1, 3); 
     } else if($ile == 70){ 
      $mysql['inactive_amount'] = mt_rand(2, 3); 
     } else if($ile == 80){ 
      $mysql['inactive_amount'] = mt_rand(3, 4); 
     } else if($ile == 90){ 
      $mysql['inactive_amount'] = mt_rand(4, 4); 

     } else if($ile == 100){ 
      $mysql['inactive_amount'] = mt_rand(5, 5); 
     } else if($ile == 200){ 
      $mysql['inactive_amount'] = mt_rand(6, 5); 
     } else { 
      $mysql['inactive_amount'] = mt_rand(20, 50); 
     } 
     $mysql['invo_mysql_where'] = ''; 
+0

什么是'$ mysql ['inactive']'?看起来它不是一个数组,或者它是空的。 – BenM

+0

再次检查我的问题;我已经更新它并添加了$ mysql ['inactive']; – oliverbj

+0

这是一个空白的数组,但你试图访问索引? – BenM

回答

0

的问题是,你定义$mysql['inactive']为空数组这里:

$mysql['inactive'] = array(); 

然后再也元素添加到它。后来,您尝试使用它作为这里人口密集阵:因为没有索引的$mysql['inactive']数组定义发生

$mysql['inactive'][$x] 

错误。为了解决这个问题,你需要用一些数据填充它。