2017-07-11 13 views
-1

私はトラフ2の配列をループし、console.log()関数を使用して出力を表示したいと思います。PHPのforeachネストループは非常に大きな文字列を作成します

$fermos = array(1, 2, 5, 10, 15, 20, 25); 
$gyvuliu_tipai = array(1, 1, 2, 3, 4, 5, 6); 

foreach ($gyvuliu_tipai as $value) { 
    foreach ($fermos as $value2) { 
    switch ($value) { 
     case 1: 
      $ferma = '/produkcija/'; 
      break; 
     case 2: 
      $ferma = '/kiaulide/'; 
      break; 
     case 3: 
      $ferma = '/avide/'; 
      break; 
     case 4: 
      $ferma = '/karvide/'; 
      break; 
     case 5: 
      $ferma = '/lamu-ferma/'; 
      break; 
     case 6: 
      $ferma = '/drambliu-ferma/'; 
      break; 
    } ?> 
    <script>console.log('<?php echo $ferma . $value2; ?>');</script>  
<?php } } ?> 

予想される出力、次のようになります。

/produkcija/1 
/produkcija/2 
/kiaulide/5 
/avide/10 
/karvide/15 
/lamu-ferma/20 
/drambliu-ferma/25 

を何とかそれは、この出力: enter image description here

誰もがここで何が起こっているかを教えてもらえますか?任意の助けいただければ幸い:)

答えて

2

あなたは、ネストされたループを望んでいない...スイッチ

foreach ($fermos as $index => $value2) { 
    switch ($gyvuliu_tipai[$index]) { 
     .... 
    } 
} 

たり、それを作るためにため$gyvuliu_tipai配列の値を関連付けられて取得する$fermosループのインデックスを使用しますスイッチなしでさらに簡単です:

$gyvuliu_tipai= array('produkcija','kiaulide','avide', 'karvide','lamu-ferma','drambliu-ferma'); 

foreach ($fermos as $index => $value2) { 
    $ferma = '/' . $gyvuliu_tipai[$index] . '/'; 
    ... 
} 
+0

なぜdownvoteですか?この回答は非常に賢いと良いです。 –

+0

ありがとう、2番目のオプションは、値がデータベースに格納されているので私のケースに合っていないし、データベースレコードを変更する必要がありますが、2番目のオプションに努力していただきありがとうございます。 –

関連する問題