PHP:array_diff求取两个数组的差集

举报
彭世瑜 发表于 2022/05/20 01:33:55 2022/05/20
【摘要】 文档:https://www.php.net/manual/zh/function.array-diff.php 方法签名 array_diff(array $array, array ...$arr...

文档:https://www.php.net/manual/zh/function.array-diff.php

方法签名

array_diff(array $array, array ...$arrays): array

  
 
  • 1

示例

<?php

$list1 = [1, 2, 3];
$list2 = [3];

print_r(array_diff($list1, $list2));
// Array
// (
//     [0] => 1
//     [1] => 2
// )

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

需要注意的是,该函数会保留键名

$list1 = [1, 2, 3];
$list2 = [1];

print_r(array_diff($list1, $list2));
// Array
// (
//     [1] => 2
//     [2] => 3
// )


// 此时转为json字符串可能会得到不希望的结果
print_r(json_encode(array_diff($list1, $list2)));
// {"1":2,"2":3}


// 需要使用array_values函数取出数组中的值,获得一个新的数组
print_r(json_encode(array_values(array_diff($list1, $list2))));
// [2,3]

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

文章来源: pengshiyu.blog.csdn.net,作者:彭世瑜,版权归原作者所有,如需转载,请联系作者。

原文链接:pengshiyu.blog.csdn.net/article/details/124843948

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。