检查两个数组之间的重复值。如果没有重复,请显示标签更新

时间:2018-12-15 07:53:54

标签: arrays laravel foreach

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

这是我想要的结果。

enter image description here

这是我发送的信息。

"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_new是否facility != 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是我发布的内容。

1 个答案:

答案 0 :(得分:0)

我能想到的一种解决方案是,首先像这样获得两个数组之间的唯一值:

$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