array_diff为什么无效啊

  $a1=array("红");
        $a2=array("红","S","酸");
        $aaa=array_diff($a1,$a2) ;
        dump($aaa);//空数组

        $a3=array("r","green","blue","yel");
        $a4=array("r","green","blue");
        $result=array_diff($a3,$a4);
        dump($result);//yel`请输入代码`
阅读 4.9k
3 个回答

图片描述

array_diff 是拿第一个参数去和后面的参数做对比,返回出现在第一个数组参数中的元素,但这个元素没有出现在后面参数数组中的元素的集合,所以你第一个打印的是空数组,红这个元素,出现在后面的a2中了,所以空数组了,可以看下文档array_diff
并不是名义上的返回多个数组的差集,简而言之应该是返回第一个参数数组中独一无二的(和后面参数的并集相比较)

array_diff(array1,array2,array3...);
返回差集数组,该数组包括了所有在被比较的数组(array1)中,但是不在任何其他参数数组(array2 或 array3 等等)中的键值。
是有效的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题