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

问题描述 投票:0回答:1

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

这就是我想要的结果。

这是我发送的信息。

"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"
    ]

我需要检查

facility
facility_new
如果
facility != facility_new
这将显示标签更新和文本颜色为红色。

这是我的代码 细节.刀片

<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是我发布的。

php arrays laravel foreach laravel-blade
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.