比较Laravel中数组的键和值的最佳方法

时间:2017-08-15 17:16:07

标签: php laravel

目前我有两个阵列,如下图所示。比较它们的最佳方法是什么?通过将它们组合在一起并在一个阵列中进行比较或比较我的方式?

$ ARRAY1

$array1

$数组2

enter image description here

这就是我比较它们所做的事情

<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

假设

状态

没有

2 个答案:

答案 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 视图中工作,您可以使用for循环。

@foreach ($array1 as $key => $value)
    {{isset($array2[$key]) && $value == $array2[$key] ? 'YES' : 'NO'}}
@endforeach

解释:

内部部分是三元运算符,它评估相等性并返回相应的值。

当我们有