目前我有两个阵列,如下图所示。比较它们的最佳方法是什么?通过将它们组合在一起并在一个阵列中进行比较或比较我的方式?
$ ARRAY1
$数组2
这就是我比较它们所做的事情
<table>
<thead><tr><td>status</td></tr></thead>
<tbody>
<tr>
<td>
foreach($array1 as $key => $value)
{
foreach($array2 as $ke2 => $value2)
{
if($value[0] == $value2[0] &&
$value[1] == $value2[1] &&
$value[2] == $value2[2])
YES
else
NO
}
}
</td>
<tr>
</tbody>
</table>
更新
<table>
<thead><tr><td>status</td></tr></thead>
<tbody>
<tr>
<td>
@foreach ($array1 as $key => $value)
@if (isset($array2[$key]) && $value == $array2[$key])
Yes
@else
No
@endif
@endforeach
</td>
<tr>
</tbody>
</table>
但是这样显示在表格中
状态
NoYesYes
NoYesYes
NoYesYes
假设
状态
没有
是
是
答案 0 :(得分:1)
等效适用于数组,因此您可以消除内部foreach循环
foreach ($array1 as $key => $value) {
echo isset($array2[$key]) && $value == $array2[$key] ? 'YES' : 'NO';
}
您还可以使用===
进行类型安全比较,以及键的顺序很重要。另见:Compare multidimensional arrays in PHP
如果您正在寻找如何输出到模板中,Blade有自己的循环和条件语法。
@foreach ($array1 as $key => $value)
@if (isset($array2[$key]) && $value == $array2[$key])
Yes
@else
No
@endif
@endforeach
查看文档页面,了解有关Blade模板语法的更多信息:https://laravel.com/docs/5.4/blade#loops
答案 1 :(得分:1)
要在laravel blade视图中工作,您可以使用for循环。
@foreach ($array1 as $key => $value)
{{isset($array2[$key]) && $value == $array2[$key] ? 'YES' : 'NO'}}
@endforeach
解释:
内部部分是三元运算符,它评估相等性并返回相应的值。
当我们有
时