1--TEST-- 2Test array_diff_assoc() function : usage variations - array containing duplicate keys and values 3--FILE-- 4<?php 5/* Prototype : array array_diff_assoc(array $arr1, array $arr2 [, array ...]) 6 * Description: Returns the entries of $arr1 that have values which are not 7 * present in any of the others arguments but do additional checks whether 8 * the keys are equal 9 * Source code: ext/standard/array.c 10 */ 11 12/* 13 * Test how array_diff_assoc() behaves when comparing: 14 * 1. the order of the array 15 * 2. duplicate values 16 * 3. duplicate key names 17 */ 18 19echo "*** Testing array_diff_assoc() : variation ***\n"; 20 21$array_index = array('a', 'b', 'c', 0 => 'd', 'b'); //duplicate key (0), duplicate value (b) 22$array_assoc = array ('2' => 'c', //same key=>value pair, different order 23 '1' => 'b', 24 '0' => 'a', 25 'b' => '3', //key and value from array_index swapped 26 'c' => 2); //same as above, using integer 27 28var_dump(array_diff_assoc($array_index, $array_assoc)); 29var_dump(array_diff_assoc($array_assoc, $array_index)); 30 31echo "Done"; 32?> 33--EXPECTF-- 34*** Testing array_diff_assoc() : variation *** 35array(2) { 36 [0]=> 37 string(1) "d" 38 [3]=> 39 string(1) "b" 40} 41array(3) { 42 [0]=> 43 string(1) "a" 44 ["b"]=> 45 string(1) "3" 46 ["c"]=> 47 int(2) 48} 49Done 50