插件窝 干货文章 php两个数组的不同的值

php两个数组的不同的值

array diff 数组 不在 377    来源:    2025-03-19

在PHP中,如果你想找出两个数组之间的不同值(即在一个数组中存在但在另一个数组中不存在的值),你可以使用 array_diff() 函数。这个函数会返回一个数组,包含所有在第一个数组中但不在其他数组中的值。

示例代码

<?php
$array1 = [1, 2, 3, 4, 5];
$array2 = [3, 4, 5, 6, 7];

// 找出在 $array1 中但不在 $array2 中的值
$diff1 = array_diff($array1, $array2);

// 找出在 $array2 中但不在 $array1 中的值
$diff2 = array_diff($array2, $array1);

echo "在 array1 中但不在 array2 中的值: ";
print_r($diff1);

echo "在 array2 中但不在 array1 中的值: ";
print_r($diff2);
?>

输出结果

在 array1 中但不在 array2 中的值: Array
(
    [0] => 1
    [1] => 2
)

在 array2 中但不在 array1 中的值: Array
(
    [3] => 6
    [4] => 7
)

解释

  • array_diff($array1, $array2) 返回在 $array1 中但不在 $array2 中的值。
  • array_diff($array2, $array1) 返回在 $array2 中但不在 $array1 中的值。

注意事项

  • array_diff() 只比较数组的值,不比较键。
  • 如果你想同时比较键和值,可以使用 array_diff_assoc() 函数。

示例代码(比较键和值)

<?php
$array1 = ['a' => 1, 'b' => 2, 'c' => 3];
$array2 = ['a' => 1, 'b' => 4, 'c' => 3];

$diff = array_diff_assoc($array1, $array2);

print_r($diff);
?>

输出结果

Array
(
    [b] => 2
)

在这个例子中,array_diff_assoc() 返回了在 $array1 中但不在 $array2 中的键值对。