使用PHP array_diff的正确方法是什么?

时间:2015-09-28 07:46:22

标签: php

我无法理解在PHP中使用array_diff的正确方法,以及它是否是在我的情况下使用的正确函数。

$array1 =

Array
(
    [0] => 1457543
    [1] => 1457544
    [2] => 1461778
    [3] => 1465640
    [4] => 1473801
    [5] => 1474814
    [6] => 1474815
    [7] => 1475227
    [8] => 1478144
    [9] => 1479478
    [10] => 1480843
)

$array2 =

Array
(
    [0] => 1336623
    [1] => 1457543
    [2] => 1457544
    [3] => 1461778
    [4] => 1465640
    [5] => 1468007
    [6] => 1474814
    [7] => 1474815
    [8] => 1478144
    [9] => 1479478
    [10] => 1480843
)

我想确保$array2中的所有数字都出现在$array1中。

我会使用array_diff($array2, $array1);。这是对的吗?

array_diff是否会忽略这些键,因为我需要它来执行此操作,只需检查这些值,因为两个数组中的键通常都是相同的,因为缺少相同的值数字是此代码中要找到的点。

2 个答案:

答案 0 :(得分:0)

是的,如果您使用:

array_diff($array2, $array1);

您将确保所有$ array2值都在$ array1中。但是如果$ array1具有$ array2没有的值,你就不会得到它们。 此外,array_diff会忽略您的密钥。完全是你想要的!

答案 1 :(得分:0)

array_diff()函数用于查找给定数组的差异。

例如

<?php
    $a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
    $a2=array("e"=>"red","f"=>"green","g"=>"blue");

    $result=array_diff($a1,$a2);
    print_r($result);
?>

输出

Array ( [d] => yellow )

在您的代码中

<强>错误

  1. 无效的数组指针 [0]0
  2. 在数组元素末尾缺少,
  3. php code

    <?php
        $array1 = array
        (
            0 => 1457543,
            1 => 1457544,
            2 => 1461778,
            3 => 1465640,
            4 => 1473801,
            5 => 1474814,
            6 => 1474815,
            7 => 1475227,
            8 => 1478144,
            9 => 1479478,
            10  => 1480843
        );
    
        $array2 = array
        (
            0=> 1336623,
            1=> 1457543,
            2=> 1457544,
            3=> 1461778,
            4=> 1465640,
            5=> 1468007,
            6=> 1474814,
            7=> 1474815,
            8=> 1478144,
            9=> 1479478,
            10 => 1480843
        );
    
        $result=array_diff($array1,$array2);
        print_r($result);
    ?>
    

    <强>输出

    Array ( [4] => 1473801 [7] => 1475227 )
    

    Your Output in phpFiddle