我的控制器中有一个变量$data
。我得到以下结果
Array( [0] => 99 [1] => 100 [2] => 101 [3] => 102 [4] => 103)
现在我想通过使用for循环逐个获取单个条目。这个循环的主要目的是我想在DB table
中插入这些值。
if(Yii::$app->request->isAjax && Yii::$app->request->post())
{
$data = explode(',',$_POST['data']);
for($i=0; $i<=count($data); $i++)
{
print_r($data[$i]);
}
//print_r($data);
}
else{
echo 'no data';
}
exit();
当我运行这个时,我收到错误
500内部服务器错误 PHP注意'yii \ base \ ErrorException',消息'Undefined offset:5'
堆栈跟踪
Stack trace:
#0 E:\xampp\htdocs\inventory-
web\backend\controllers\OgpheaderController.php(170): yii\base\ErrorHandler-
>handleError(8, 'Undefined offse...',
'E:\\xampp\\htdocs...', 170, Array)
#1 [internal function]: backend\controllers\OgpheaderController-
>actionViewsetpdf('55')
#2 E:\xampp\htdocs\inventory-
web\vendor\yiisoft\yii2\base\InlineAction.php(57):
call_user_func_array(Array, Array)
#3 E:\xampp\htdocs\inventory-
web\vendor\yiisoft\yii2\base\Controller.php(156): yii\base\InlineAction-
>runWithParams(Array)
#4 E:\xampp\htdocs\inventory-web\vendor\yiisoft\yii2\base\Module.php(523):
yii\base\Controller->runAction('viewsetpdf', Array)
#5 E:\xampp\htdocs\inventory-
web\vendor\yiisoft\yii2\web\Application.php(102): yii\base\Module-
>runAction('ogpheader/views...', Array)
#6 E:\xampp\htdocs\inventory-
web\vendor\yiisoft\yii2\base\Application.php(380): yii\web\Application-
>handleRequest(Object(yii\web\Request))
#7 E:\xampp\htdocs\inventory-web\backend\web\index.php(17):
yii\base\Application->run()
#8 {main}</pre>
我搜索过此错误解决方案但找不到正确的答案。
任何帮助都将受到高度赞赏。
答案 0 :(得分:2)
而不是for循环,请使用foreach:
foreach($data as $d)
{
print_r($d);
}
确保您始终保持在数组的范围内
答案 1 :(得分:2)
for($i=0; $i<count($data); $i++)
{
print_r($data[$i]);
}
或
for($i=0; $i<=count($data)-1; $i++)
{
print_r($data[$i]);
}
或
foreach($data as $value)
{
print_r($value);
}
其中任何一个都可以使用
答案 2 :(得分:1)
将您的代码更改为
for($i=0; $i<count($data); $i++)
{
print_r($data[$i]);
}
数组共有5个元素,以索引0
开头,以4
结尾,当您将计数与<=
进行比较时,它会转到索引5
。