実現したいこと
foreachでループ処理をして該当のものだけDBに保存したい。
前提
$targetには下記の様に入っています。
array ( 0 => array ( 0 => '1', 1 => '110', 2 => '12345', 3 => '23456', 4 => '2020/4/1', 5 => '2020/4/1', 6 => '1', 7 => '1111', 8 => 'テストエラー', 9 => '', 10 => '', 11 => '', 12 => '', 13 => '', 14 => '', 15 => '', 16 => '', 17 => '', 18 => '', 19 => '', 20 => '', 21 => '', 22 => '', 23 => '', 24 => '', 25 => '', ), 1 => array ( 0 => '3', 1 => 'yk123456', 2 => 'ky123456', 3 => '222222', 4 => '100000', 5 => '3333444455556666', 6 => '1125', 7 => '10', 8 => '', 9 => '', 10 => '12', 11 => 'yy12345', 12 => '', 13 => 'kk123456', 14 => '987654', 15 => '0', 16 => '', 17 => '1', 18 => '1111', 19 => 'エラーテスト', 20 => '0', 21 => '50001', 22 => '株式会社田中', 23 => '55555', 24 => 'yyk1', 25 => 'y01234', ), 2 => array ( 0 => '3', 1 => 'yk234567', 2 => 'ky234567', 3 => '333333', 4 => '100000', 5 => '4444555566667777', 6 => '1125', 7 => '10', 8 => '', 9 => '', 10 => '12', 11 => 'yy23456', 12 => '', 13 => 'kk234567', 14 => '876543', 15 => '0', 16 => '', 17 => '1', 18 => '2222', 19 => 'エラーテスト', 20 => '0', 21 => '50001', 22 => '株式会社田中', 23 => '66666', 24 => 'yyk2', 25 => 'y43210', ), 3 => array ( 0 => '4', 1 => '400', 2 => '200', 3 => '100', 4 => '', 5 => '', 6 => '', 7 => '', 8 => '', 9 => '', 10 => '', 11 => '', 12 => '', 13 => '', 14 => '', 15 => '', 16 => '', 17 => '', 18 => '', 19 => '', 20 => '', 21 => '', 22 => '', 23 => '', 24 => '', 25 => '', ), )
0 => の値が1と4の時にデータをDBに保存したい。
該当のソースコード
foreach($target as $val){ $data = new aaa(); if($val[0] === '1'){ $inputdata = $val[0].",".$val[0].",".$val[1].",".$val[2].",".$val[3].",".$val[4].",".$val[5].",".$val[6].",".$val[7]; $data->RecordId = $val[0]; $data->Note = $inputdata; $data->save(); } if($val[0] === '4'){ $inputdata = $val[0].",".$val[0].",".$val[1].",".$val[2].",".$val[3]; $data->RecordId = $val[0]; $data->Note = $inputdata; $data->save(); } }
<?php namespace App; use Illuminate\Database\Eloquent\Model; class aaa extends Model { protected $table ="datarecord"; }
試したこと
foreach($target as $key => $val){ $data = new dr_ricella(); if($val[$key][0] === '1'){ $inputdata = $val[0].",".$val[0].",".$val[1].",".$val[2].",".$val[3].",".$val[4].",".$val[5].",".$val[6].",".$val[7]; $data->RecordId = $val[0]; $data->Note = $inputdata; $data->save(); } if($val[$key][0] === '4'){ $inputdata = $val[0].",".$val[0].",".$val[1].",".$val[2].",".$val[3]; $data->RecordId = $val[0]; $data->Note = $inputdata; $data->save(); } }
keyをつけてやってみたのですが、結果からみて4の場合も1の処理になってしまっています。
【バージョン情報】
Laravel Framework 6.20.44
PHP 7.2.34
ご教授頂けないでしょうか。
宜しくお願い致します。
回答2件
あなたの回答
tips
プレビュー