Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.0k views
in Technique[技术] by (71.8m points)

php - To compare two arrays while considering duplicate value

i have two arrays

$array1 = array(1, 2,  2, 3);
$array2 = array( 1, 2,  3,4);

and when did :

var_dump(array_diff($array1, $array2));

getting :

array(0){}

as output , but i am looking for :

array(1){[2]=>2}

can someone please let me know how to do it

Thanks in Advance

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Try this

$array1 = array(1, 2, 2, 3, 4, 5, 5, 7);
$array2 = array(1, 2, 4, 6, 3, 3, 5);
$diff = array_filter($array1, 
  function ($val) use (&$array2) { 
    $key = array_search($val, $array2);
    if ( $key === false ) return true;
    unset($array2[$key]);
    return false;
  }
);
print_r($diff);
// Array ( [2] => 2 [6] => 5 [7] => 7 )

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...