我有 2 个数组翻译(二维(和行(一维(。 translations 包含数组,当行和翻译 [][i] 的索引匹配时,我想将该行打印为粗体。否则按原样打印下一行。 我已经用这段代码尝试过了。
$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 次翻译子数组元素。 我知道问题出在我迭代数组的方式上,我应该如何解决这个问题? 帮助将不胜感激。
试试这个,希望这会帮助你。与其循环遍历数组$lines
不如in_array
检查元素是否存在。
在此处尝试此代码片段
<?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;
}
}
}