为了账号安全,请及时绑定邮箱和手机立即绑定

将新数组与前一个数组进行比较

将新数组与前一个数组进行比较

PHP
PIPIONE 2021-12-03 16:13:59
我有一个包含 4 个元素的数组[1, 2, 3, 4]到目前为止,我正在打印几个数组,每个数组中都有不同的元素,限制在我设置的范围内。for($i = 0; $i<=100; $i++){//...到目前为止的输出:[11, 22, 32, 44][22, 33, 44, 45][12, 24, 25, 31][15, 16, 31, 41][22, 33, 44, 45]//already exist[11, 22, 32, 44]//already exist...如何将传出数组与下一个传出数组进行比较,并在与前一个数组相等时删除新数组?
查看完整描述

1 回答

?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

您可以在帮助下为数组创建一个键,implode()并拥有一个set包含此键的数组。如果 key 已经存在,则迭代中的当前数组是一个重复数组,否则它是一个新数组。请记住对当前数组进行排序,因为此处的数字顺序很重要,以便进行正确的键检查。


<?php


$arr = [

        [11, 22, 32, 44],

        [22, 33, 44, 45],

        [12, 24, 25, 31],

        [15, 16, 31, 41],

        [22, 33, 44, 45],

        [44, 22, 32, 11]

    ];



$set = [];    

foreach($arr as $curr_array){

    sort($curr_array);

    $hash = implode("|",$curr_array);

    if(isset($set[$hash])) echo "Duplicate",PHP_EOL;

    else{

        print_r($curr_array);

        $set[$hash] = true;

    }

}

演示: https //3v4l.org/EXXRu


查看完整回答
反对 回复 2021-12-03
  • 1 回答
  • 0 关注
  • 266 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信