比较两个数组并根据条件创建不同的数组

时间:2011-11-02 05:47:40

标签: php arrays

我有这两个数组

$array1 = Array (
    [0] => 5
    [1] => 25
    [2] => 3
    [3] => 9
    [4] => 15
    [5] => 8
    [6] => 26
    [7] => 1
);

$array2 = Array
(
    [0] => 5
    [1] => 25
    [2] => 3
    [3] => 9
    [4] => 6
    [5] => 26
    [6] => 1
    [7] => 53
    [8] => 22
)

$array1保留旧值,$array2保存新值。我想用它创建三个不同的数组。

  

首先:第一个数组应该获取$array1中可用且$array2中不可用的值,即已删除的值,   这就是我做的事情。

$delete = array_diff($array, $array2);
//Gives me following expected output 
Array
(
    [4] => 15
    [5] => 8
)
  

第二个:第二个数组应该获取$ array1中不可用但在$ array2中添加的值,即新值,预期   在这种情况下输出是。

Array (
    [0] => 6
    [0] => 53
    [0] => 22
)
  

第三个:第三个数组应该获取$array1中可用且在$array2中仍然可用的公共值,数组值,即   相同或共同的价值观。在这种情况下的预期输出是。

Array (
    [0] => 5
    [1] => 25
    [2] => 3
    [3] => 9
    [4] => 26
    [5] => 1
)

1 个答案:

答案 0 :(得分:3)

这会产生正确的输出:

<?php

$array1 = array(
    0 => 5,
    1 => 25,
    2 => 3,
    3 => 9,
    4 => 15,
    5 => 8,
    6 => 26,
    7 => 1
);

$array2 = array(
    0 => 5,
    1 => 25,
    2 => 3,
    3 => 9,
    4 => 6,
    5 => 26,
    6 => 1,
    7 => 53,
    8 => 22
);

$deleted = array_diff( $array1, $array2);
var_dump( $deleted);

$insert = array_diff( $array2, $array1);
var_dump( $insert);

$same = array_intersect( $array1, $array2);
var_dump( $same);

http://codepad.org/JianpnYh