码迷,mamicode.com
首页 > 其他好文 > 详细

array_diff、array_diff_key、array_diff_ukey、array_diff_assoc、array_diff_uassoc 的用法

时间:2018-04-12 15:24:08      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:nbsp   diff   php   比较   理解   compare   turn   默认   回调函数   

<?php

// array_diff* 系列的函数都返回关联数组

$array1 = [
    ‘a‘ => 1,
    ‘b‘ => 2,
    ‘e‘ => 3,
];
$array2 = [
    ‘a‘ => 1,
    ‘b‘ => 3,
    ‘c‘ => 5, // 这里的 0 是默认的, 写出来只是为了明显一点
];

// 只比较值
echo "array_diff(\$array1, \$array2): \n";
var_dump(array_diff($array1, $array2));

// 只比较键
echo "array_diff_key(\$array1, \$array2): \n";
var_dump(array_diff_key($array1, $array2));

// 1、在 $array1 中的值, 但不在 $array2 中的值的对应项会被返回
// 2、在 $array1 中的键, 但不在 $array2 中的键的对应项会被返回(即使两个数组中有相同的该键对应的值)
// 可以简单理解为, 该函数融合了 array_diff_key 和 array_diff 的功能:
// 1、先比较了两个数组的键, 在 $array1 中, 但不在 $array2 中的键会被返回(array_diff_key)
// 2、再比较两个数组的值(array_diff)
echo "array_diff_assoc(\$array1, \$array2): \n";
var_dump(array_diff_assoc($array1, $array2));

function compare($key1, $key2) {
    if ($key1 == $key2) {
        return 0;
    }
    return ($key1 > $key2) ? 1 : -1;
}

// array_diff 使用自定义回调函数进行 键和值 比较: array_diff_uassoc(同时比较键和值)
echo "array_diff_uasssoc(\$array1, \$array2): \n";
var_dump(array_diff_uassoc($array1, $array2, ‘compare‘));

// array_diff 使用自定义回调函数进行 键 比较: array_diff_ukey(只比较键)
echo "array_diff_ukey(\$array1, \$array2): \n";
var_dump(array_diff_ukey($array1, $array2, ‘compare‘));

  

输出:

array_diff($array1, $array2): 
array(1) {
  ["b"]=>
  int(2)
}
array_diff_key($array1, $array2): 
array(1) {
  ["e"]=>
  int(3)
}
array_diff_assoc($array1, $array2): 
array(2) {
  ["b"]=>
  int(2)
  ["e"]=>
  int(3)
}
array_diff_uasssoc($array1, $array2): 
array(2) {
  ["b"]=>
  int(2)
  ["e"]=>
  int(3)
}
array_diff_ukey($array1, $array2): 
array(1) {
  ["e"]=>
  int(3)
}

  

 

array_diff、array_diff_key、array_diff_ukey、array_diff_assoc、array_diff_uassoc 的用法

标签:nbsp   diff   php   比较   理解   compare   turn   默认   回调函数   

原文地址:https://www.cnblogs.com/eleven24/p/8807609.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!