Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将新阵列与上一个阵列进行比较_Php - Fatal编程技术网

Php 将新阵列与上一个阵列进行比较

Php 将新阵列与上一个阵列进行比较,php,Php,我有一个包含4个元素的数组 [1, 2, 3, 4] 到目前为止,我正在打印几个数组,每个数组中都有不同的元素,达到我设定的限制 for($i = 0; $i<=100; $i++){//... 如果传出数组与上一个数组相等,如何将传出数组与下一个传出数组进行比较并删除新数组 您可以借助内爆()为数组创建一个键,并拥有一个具有该键的集合数组。如果键已经存在,那么迭代中的当前数组是一个重复的数组,否则它是一个新数组。记住对当前数组进行排序,因为这里的数字顺序很重要,以便进行正确的键检查

我有一个包含4个元素的数组

[1, 2, 3, 4]
到目前为止,我正在打印几个数组,每个数组中都有不同的元素,达到我设定的限制

for($i = 0; $i<=100; $i++){//...

如果传出数组与上一个数组相等,如何将传出数组与下一个传出数组进行比较并删除新数组

您可以借助
内爆()
为数组创建一个键,并拥有一个具有该键的
集合
数组。如果键已经存在,那么迭代中的当前数组是一个重复的数组,否则它是一个新数组。记住对当前数组进行排序,因为这里的数字顺序很重要,以便进行正确的键检查

<?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;
    }
}

请阅读并相应编辑您的问题。您需要向我们提供您的完整尝试、示例数据、预期结果以及您当前获得的结果。in_array([22,33,44,45]、[11,22,32,44]、[22,33,44,45])将为您提供完美的答案!就这样!我也感谢其他评论!先生,在没有重复之前,我可以使用哪个循环和条件?这是可能的?@DavidConcha在不再有重复项之前,你所说的
是什么意思?
?在这些重复项之间进行所有可能的组合arrays@DavidConcha我不明白。你能举个例子吗?好的,你真的帮了我很多,我会尝试一些东西。再次感谢!
<?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;
    }
}