2017-11-14 9 views
0

私のコントローラに変数$dataがあります。これで私はYii2の配列データに対してループを使用できません

Array([0] => 99 [1] => 100 [2] => 101 [3] => 102 [4] => 103) 

は、今私はforループを使用することで、1つで単一のエントリ1を取得したい、次の結果を取得しています。このループの主な目的は、これらの値を私のDB tableに挿入することです。

私はこの1つを実行すると、私はエラーに

500内部サーバーエラー メッセージとPHPのお知らせ 'のYii \ベースの\ ErrorException' '未定義オフセット:5' 取得しています

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(); 

スタックトレース

Stack trace: 
#0 E:\xampp\htdocs\inventory- 
web\backend\controllers\OgpheaderController.php(170): yii\base\ErrorHandler- 
&gt;handleError(8, &#039;Undefined offse...&#039;, 
&#039;E:\\xampp\\htdocs...&#039;, 170, Array) 
#1 [internal function]: backend\controllers\OgpheaderController- 
&gt;actionViewsetpdf(&#039;55&#039;) 
#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- 
&gt;runWithParams(Array) 
#4 E:\xampp\htdocs\inventory-web\vendor\yiisoft\yii2\base\Module.php(523): 
yii\base\Controller-&gt;runAction(&#039;viewsetpdf&#039;, Array) 
#5 E:\xampp\htdocs\inventory- 
web\vendor\yiisoft\yii2\web\Application.php(102): yii\base\Module- 
&gt;runAction(&#039;ogpheader/views...&#039;, Array) 
#6 E:\xampp\htdocs\inventory- 
web\vendor\yiisoft\yii2\base\Application.php(380): yii\web\Application- 
&gt;handleRequest(Object(yii\web\Request)) 
#7 E:\xampp\htdocs\inventory-web\backend\web\index.php(17): 
yii\base\Application-&gt;run() 
#8 {main}</pre> 

このエラー解決策を検索しましたが、正しい回答が見つかりませんでした。

ご協力いただければ幸いです。代わりに、forループの

+1

変更を動作します '$ iの数($データ)<' – urfusion

+0

は、データの数が5であります配列は0から4までue scaisEdge

答えて

1

変動の範囲内にとどまることを確認します5インデックス0で始まり、最後に4で終わり、<=とカウントを比較すると、インデックスはになります。

+0

のように動作します。 –

2

は、使用するforeachは:

foreach($data as $d) 
{ 
    print_r($d); 
} 

for($i=0; $i<count($data); $i++) 
{ 
    print_r($data[$i]); 
} 

Arrayにあなたのコードは、合計持っているあなたは常に配列

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); 
} 

これらのいずれかがへ

関連する問題