获取php中两个数组之间的真正区别

时间:2010-10-11 10:36:26

标签: php arrays

我正在尝试区分两个数组,但是使用array_diffarray_diff_assocarray_diff_key我无法得到我想要的数据。

Array 1 :
  0 => 424012,
  1 => 423000,
  2 => 425010,
  3 => 431447,
  4 => 421001,
  5 => 421002,

Array 2 :
  0 => 424012,
  1 => 423000,
  2 => 425010,
  3 => 431447,
  4 => 431447,
  5 => 421001,
  6 => 421002,

array_diff =  array () 
// empty

jarray_diff_assoc = array ( 
  4 => 431447,
  5 => 421001,
  6 => 421002,
) 
// OK but too much :)

array_diff_key = array(
6 => 421002
) 
// nope i don't want that :(

我想要431447,因为它在第一个数组中只有一次,在第二个数组中只有两次。

问候,托尼

1 个答案:

答案 0 :(得分:2)

这正是你想要的吗?只有那些在第一次出现一次,在第二次出现两次?

你基本上可以为此编写自己的函数。搜索第二个数组,获取两次(或多次,取决于您实际需要的值)的值列表,然后搜索第一个中的值(这可以使用内置的在PHP函数array_intersect)。