首页 > 解决方案 > 检查两个数组之间的重复值。如果不重复,则显示标签更新

问题描述

如果不重复显示标签更新,我想检查两个数组之间的重复值。

这就是我想要的结果。

在此处输入图像描述

这是我发送的信息。

"facility" => array:1 [▼
    "Tour Gudie Multilingual" => array:3 [▼
      0 => "Speaking Guide - English"
      1 => "Audio - Thai"
      2 => "Audio - Chinese"
    ]
  ]

  "facility_new" => array:1 [▼
    "Tour Gudie Multilingual" => array:8 [▼
      0 => "Audio - Chinese"
      1 => "Audio - English"
      2 => "Audio - French"
      3 => "Audio - German"
      4 => "Audio - Indonesia"
      5 => "Audio - Russia"
      6 => "Audio - Thai"
      7 => "Speaking Guide - English"
    ]

我需要检查这是否 会显示标签更新和文本颜色为红色facilityfacility_newfacility != facility_new

这是我的代码 detail.blade

<div class="box-body">
    @foreach($value['facility_new'] as $fk => $fv)
        @foreach($value['facility'][$fk] as $k => $v)
            <div class="form-group">
                <label class="col-sm-2 control-label">{{$fk}}</label>
                <div class="col-sm-10">
                    @foreach($fv as $key => $value)
                        <div class="col-md-6" style="padding-bottom: 10px">
                            @if($v == $value)
                                <p>
                                    <i class="fa fa-fw fa-check-circle text-green"></i>
                                    <span class="text-blue">{{$value}}</span>                                        
                                </p>
                            @else
                                <p style="color: red">
                                    <i class="fa fa-fw fa-check-circle text-green"></i>
                                    <span class="label label-danger">Update</span>
                                    {{$value}}
                                </p>
                            @endif
                        </div>
                    @endforeach
                </div>        
            </div>
            <hr>
        @endforeach
    @endforeach
</div>

但我认为我有两件事要解决。1. 碎片整理。设施和 2 是我发布的。

标签: arrayslaravelforeach

解决方案


我能想到的一个解决方案是首先获取两个数组之间的唯一值,如下所示:

$result = array_map('unserialize',
          array_diff(array_map('serialize', $facilityNew['Tour Gudie Multilingual']),
          array_map('serialize', $facility['Tour Gudie Multilingual'])));

*请注意,我们将新值与旧值进行比较。

然后在您的视图中,您可以检查$value新数组中是否不存在您可以显示红色/更新按钮。

in_array($value, $result) // this should go in your @if condition

推荐阅读