2017-05-11 19 views
0

2次元配列と2次元配列があります。変換は配列を保持し、lineとtranslation [] [i]のインデックスが一致すると、その行を太字に印刷します。私はこのコードで試してみました。2次元配列と1次元配列の比較を比較する

$translations[0]=array("Volvo", "BMW", "Toyota"); 
$translations[1]=array("ferrari", "mustang", "bently"); 
$lines=array("mustang","BMW"); 

for($i=0;$i<count($translations);$i++){ 
    for($j=0;$j<count($translations[$i]);$j++){ 
     foreach ($lines as $key =>$line){ 
      if($d==$translation[$i][$j]) { 
       echo "<b>" .$translation[$i][$j] . "</b><br>" ; 
      } 
      else{ 
       echo $translation[$i][$j]."<br>"; 
      } 
     } 
    } 
} 

ここでの問題は、翻訳サブアレイ要素を3回印刷することです。私は問題が私は配列を反復している方法であることを知っている、どのように私はこの問題を解決する必要がありますか?助けていただければ幸いです。

答えて

1

これを試してください、これがあなたを助けてくれることを願っています。配列$linesをループする代わりに、要素が存在するかどうかをin_arrayで確認することができます。私は太字の行/テキストを印刷したいの一致を見つけたときに私がしたいことは、それが故に、他の使用であるとして、それ以外のラインが印刷されるべきであり、タイプミスだった

Try this code snippet here

<?php 

ini_set('display_errors', 1); 

$translations[0] = array("Volvo", "BMW", "Toyota"); 
$translations[1] = array("ferrari", "mustang", "bently"); 
$lines = array("mustang", "BMW"); 

for ($i = 0; $i < count($translations); $i++) 
{ 
    for ($j = 0; $j < count($translations[$i]); $j++) 
    { 
     if (in_array($translations[$i][$j], $lines)) 
     { 
      echo "<b>".$translations[$i][$j] ."</b>". PHP_EOL; 
     } 
     else 
     { 
      echo $translations[$i][$j] .PHP_EOL; 
     } 
    } 
} 
+0

。 –

+0

@MuhammadImran私の現在の投稿は、達成したいことを達成するのに役立ちます。 –

+0

翻訳のすべての要素**を一度だけ**印字したい場合は太字の行と一致するものをそのまま残し、コードは一致するものだけを出力します。 –

関連する問題