2017-08-15 118 views
0

目前我有兩個數組,如下圖所示。什麼是比較它們的最佳方式?要麼將它們組合在一起,並在一個數組內比較或比較我做的方式?比較Laravel中的數組的鍵值的最佳方法

$陣列1

$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

假設是

狀態

沒有

回答

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 

檢查文檔頁面以獲得更多關於刀片模板語法:https://laravel.com/docs/5.4/blade#loops

+0

我如何把這個在laravel刀片視圖?它只是顯示代碼 – begineeeerrrr

+0

沒問題,但它在表格的每一行中顯示noyesyes – begineeeerrrr

+0

我擴展了我的答案以包含有關刀片的信息。儘管我還會注意到刀片模板也可以像任何其他PHP文件一樣工作,並且您可以在任何需要的位置添加塊,但建議避免將業務邏輯拉入模板中。 –

1

要在laravel 得到這個工作,查看您可以使用for循環。

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

爲了解釋:

內部部分是一個三元運算符,它評估平等並返回相應的值。

當我們有