2016-04-13 12 views
0

私は本当に簡単なことをしました(私は推測します)。私の周りには、データを適切出力への解決策を見つけるカント遊んで長い時間後に私の見解Laravel Loop through array

@foreach($input as $key => $item) 



    <div class="col-xs-6" style="width: 100%;"> 
     <h3>Day</h3> 
     <hr /> 
     <div class="dishContainer"> 
      <h4 class="dishTitle">item</h4> 
      <p class="dishDesc">{{ $item }}</p> 
      <p class="priceTag">{{ How caN I display the Price of every item ?}}€</p> 
     </div> 
    </div> 
    @endforeach 

に配列をループし

array(30) { 
["gericht_1_mo"]=> 
string(6) "Nudeln" 
["preis_1_mo"]=> 
string(4) "5,50" 
["gericht_2_mo"]=> 
string(64) "Paniertes Schweineschnitzel 
mit Pommes frites und Beilagensalat" 
["preis_2_mo"]=> 
string(2) "13" 
["gericht_1_di"]=> 
string(75) "Gebratenes Hähnchenbrustfilet auf asiatischer Gemüsesoße mit Basmatireis" 
["preis_1_di"]=> 
string(4) "4,70" 
["gericht_2_di"]=> 
string(83) "Geröstete Hörnchennudeln mit Ei, Käse, Speck 
und Zwiebeln dazu ein bunter Salat" 
["preis_2_di"]=> 
string(4) "7,90" 
} 

としたい:

は、私は配列を持っています。

+1

この配列はどのように配置されていますか? – Laerte

+2

この乱雑な配列を作成するコードをリファクタリングする方が良いでしょう。それがあなたに適している場合は、適切なコードを投稿してください。 –

答えて

1

データモデルに問題があると私は主張します。少なくとも、あなたが望むようにデータをレンダリングするには、ビューを呼び出す前にデータを変換します。次のようなものがあります:

$output = []; 
foreach($input as $key => $value){ 
    if(preg_match('/(preis|gericht)_([0-9]+_[a-z]{2})/', $key, $matches)){ 
     $output[$matches[2]][$matches[1] = $value; 
    } 
} 

このコードはチェックされていないので、使用する前にテスト/修正する必要があります。

0
@for ($x = 0; $x < count($input); $x+=2) 
      <div class="col-xs-6" style="width: 100%;"> 
      <h3>Day</h3> 
      <hr /> 
      <div class="dishContainer"> 
       <h4 class="dishTitle">item</h4> 
       <p class="dishDesc">{{ $input[$x] }}</p> 
       <p class="priceTag">{{ $input[$x+1] }}€</p> 
       </div> 
      </div> 
    @endfor