Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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_Arrays_Multidimensional Array_Duplicates - Fatal编程技术网

Php 检查多维数组中的重复结果

Php 检查多维数组中的重复结果,php,arrays,multidimensional-array,duplicates,Php,Arrays,Multidimensional Array,Duplicates,我有一个多维数组,我需要交叉检查它是否有重复的结果,如果它们是重复的,请删除带有重复结果的数组。我需要检查3把钥匙是否重复;号码,出发和到达。下面是一个示例阵列,其中第三个阵列是重复的,需要删除: [Cars] => Array ( [0] => Array ( [cartype] => car1 [number] => 123

我有一个多维数组,我需要交叉检查它是否有重复的结果,如果它们是重复的,请删除带有重复结果的数组。我需要检查3把钥匙是否重复;号码,出发和到达。下面是一个示例阵列,其中第三个阵列是重复的,需要删除:

[Cars] => Array
    (
        [0] => Array
            (
                [cartype] => car1
                [number] => 123
                [craft] => 456
                [departure] => GHY
                [departtime] => 20:25
                [arrival] => PUI
                [arrivetime] => 22:50
            )

        [1] => Array
            (
                [cartype] => car2
                [number] => 567
                [craft] => 890
                [departure] => LHY
                [departtime] => 16:25
                [arrival] => PGY
                [arrivetime] => 23:50
            )
        [2] => Array
            (
                [cartype] => car2
                [number] => 567
                [craft] => 890
                [departure] => LHY
                [departtime] => 16:25
                [arrival] => PGY
                [arrivetime] => 23:50
            )

    )
我真的很感谢你的帮助


谢谢,

使用
in_array
函数和自定义
$hash\u map
容器的解决方案(每个条目由
编号
出发
到达
键值组成):


尝试以下操作以完全删除相同的重复子阵列

$arr = [['cartype' => 'car1','number' => '123','departure' => 'GHY','arrival' => 'PUI'],
        ['cartype' => 'car2','number' => '567','departure' => 'LHY','arrival' => 'PGY'],
        ['cartype' => 'car2','number' => '567','departure' => 'LHY','arrival' => 'PGY']];
$out = [];  
while (list($k, $v) = each($arr)) {
if(!in_array($v,$out)) {
    array_push($out,$v);
}
}
print_r($out);
// output
Array
(
    [0] => Array
        (
            [cartype] => car1
            [number] => 123
            [departure] => GHY
            [arrival] => PUI
        )

    [1] => Array
        (
            [cartype] => car2
            [number] => 567
            [departure] => LHY
            [arrival] => PGY
        )
)
检查示例

编辑 如果您只想用于检查重复结果

$arr = [['cartype' => 'car1','number' => '123','departure' => 'GHY','arrival' => 'PUI'],
        ['cartype' => 'car2','number' => '567','departure' => 'LHY','arrival' => 'PGY'],
        ['cartype' => 'car2','number' => '567','departure' => 'LHY','arrival' => 'PGY']];
$out = []; 
$checks = [];
while (list($k, $v) = each($arr)) {
if(!in_array([$v['number'],$v['departure'],$v['arrival']],$checks)) {
    array_push($checks,[$v['number'],$v['departure'],$v['arrival']]);
    array_push($out,$v);
}
}
print_r($out);
// output 
Array
(
    [0] => Array
        (
            [cartype] => car1
            [number] => 123
            [departure] => GHY
            [arrival] => PUI
        )

    [1] => Array
        (
            [cartype] => car2
            [number] => 567
            [departure] => LHY
            [arrival] => PGY
        )
)

检查新示例

您必须检查所有数组元素,还是只检查
数字
?您可以使用
序列化()
将每个数组转换为字符串,使用
数组_unique()
删除重复项,然后使用
取消序列化()
将它们转换回数组。
$arr = [['cartype' => 'car1','number' => '123','departure' => 'GHY','arrival' => 'PUI'],
        ['cartype' => 'car2','number' => '567','departure' => 'LHY','arrival' => 'PGY'],
        ['cartype' => 'car2','number' => '567','departure' => 'LHY','arrival' => 'PGY']];
$out = []; 
$checks = [];
while (list($k, $v) = each($arr)) {
if(!in_array([$v['number'],$v['departure'],$v['arrival']],$checks)) {
    array_push($checks,[$v['number'],$v['departure'],$v['arrival']]);
    array_push($out,$v);
}
}
print_r($out);
// output 
Array
(
    [0] => Array
        (
            [cartype] => car1
            [number] => 123
            [departure] => GHY
            [arrival] => PUI
        )

    [1] => Array
        (
            [cartype] => car2
            [number] => 567
            [departure] => LHY
            [arrival] => PGY
        )
)