2017-06-10 5 views
1

私はここで配列の問題があり、私は多くの時間を費やしています。 私はこのフォーム次のコード配列データの問題Laravel

$data = Offers::whereIn('id_business', $business_id_array) 
        ->where([ 
         'visible' => 'yes', 
         'delete' => 'no' 
        ]) 
        ->where('end_date', '>=', date('Y-m-d h:m:i')) 
        ->orderBy('id', 'desc')->get() 
        ->toArray(); 

私はこのケース4には、来たすべてのアレイのためのforeachループを作るしようとすると、そうでないことで

array:4 [ 

0 => array:20 [▼ 
"id" => 58 
"id_business" => 
"id_branch" => 
"affected_branches" => " " ▶" 
"name" => "" 
"banner" => "" 
"description" => "" 
"url" => 
"start_date" => "" 
"end_date" => "" 
"nr_pages" => 4 
"nr_products" => 0 
"type" => "global" 
"views" => 24 
"visible" => "yes" 
"delete" => "no" 
"user_create_id" => 
"user_modify_id" => 
"created_at" => "" 
"updated_at" => "2017-06-07 14:19:23"] 
] 

ような配列のリストを取得私に4つの値を返しますが、1つだけです。 ループがある:あなたが$offers値を上書きしている

答えて

2

PLSミー:)ヘルプ:

foreach ($data as $key => $slide) 
       { 
        $offers = DB::select('SELECT o.`id`... WHERE o.`id` = ?',[$slide['id']]); 

       } 

       return view('...', ['offers' => $offers]); 
      } 

私は

o.`id` = ?',[$slide['id']] 

PSは、アレイの各々のIDを取得するには、クエリでこの値を渡します繰り返しごとにコードを変更してください:

$offers = []; 
foreach ($data as $key => $slide) { 
    $offers[] = DB::select... 
} 
+0

私はdd($ slide)のときにforeachに詰まっていると思います。私は最初の価値しか得ていません。 – User154584

+0

@ User154584ループの中で 'dd()'を使うと、ループの最初の値を得ることができます。ループの後に 'dd($ offer)'を使うだけで、オファーが表示されます。 –

1

$ offresを変更する必要があります配列に入れて

$offers = array(); 
foreach ($data as $key => $slide) 
{ 
    $offers[] = DB::select('SELECT o.`id`... WHERE o.`id` = ?',[$slide['id']]); 

} 

return view('...', ['offers' => $offers]); 
+0

うーん、私はそれがforeachに詰まっていると思います。私は最初の価値しか得ていません。 – User154584

+0

'foreach'ループが完了した後に' dd($ slide) 'を使う –