1--TEST-- 2Test array_diff_assoc() function : usage variations - compare multidimensional arrays 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 * multi-dimensional arrays 15 */ 16 17echo "*** Testing array_diff_assoc() : usage variations ***\n"; 18 19$array1 = array('sub_array1' => array (1, 2, 3), 20 'sub_array2' => array ('a', 'b', 'c')); 21$array2 = array('sub_arraya' => array (1, 3, 5), 22 'sub_arrayb' => array ('a', 'z', 'y')); 23 24echo "-- Compare two 2-D arrays --\n"; 25var_dump(array_diff_assoc($array1, $array2)); 26var_dump(array_diff_assoc($array2, $array1)); 27 28echo "\n-- Compare subarrays from two 2-D arrays --\n"; 29var_dump(array_diff_assoc($array1['sub_array1'], $array2['sub_arraya'])); 30var_dump(array_diff_assoc($array2['sub_arraya'], $array1['sub_array1'])); 31var_dump(array_diff_assoc($array1['sub_array2'], $array2['sub_arrayb'])); 32var_dump(array_diff_assoc($array2['sub_arrayb'], $array1['sub_array1'])); 33 34echo "\n-- Compare a subarray from one 2-D array and one 2-D array --\n"; 35var_dump(array_diff_assoc($array1['sub_array1'], $array2)); 36var_dump(array_diff_assoc($array1, $array2['sub_arraya'])); 37 38echo "Done"; 39?> 40--EXPECTF-- 41*** Testing array_diff_assoc() : usage variations *** 42-- Compare two 2-D arrays -- 43array(2) { 44 ["sub_array1"]=> 45 array(3) { 46 [0]=> 47 int(1) 48 [1]=> 49 int(2) 50 [2]=> 51 int(3) 52 } 53 ["sub_array2"]=> 54 array(3) { 55 [0]=> 56 string(1) "a" 57 [1]=> 58 string(1) "b" 59 [2]=> 60 string(1) "c" 61 } 62} 63array(2) { 64 ["sub_arraya"]=> 65 array(3) { 66 [0]=> 67 int(1) 68 [1]=> 69 int(3) 70 [2]=> 71 int(5) 72 } 73 ["sub_arrayb"]=> 74 array(3) { 75 [0]=> 76 string(1) "a" 77 [1]=> 78 string(1) "z" 79 [2]=> 80 string(1) "y" 81 } 82} 83 84-- Compare subarrays from two 2-D arrays -- 85array(2) { 86 [1]=> 87 int(2) 88 [2]=> 89 int(3) 90} 91array(2) { 92 [1]=> 93 int(3) 94 [2]=> 95 int(5) 96} 97array(2) { 98 [1]=> 99 string(1) "b" 100 [2]=> 101 string(1) "c" 102} 103array(3) { 104 [0]=> 105 string(1) "a" 106 [1]=> 107 string(1) "z" 108 [2]=> 109 string(1) "y" 110} 111 112-- Compare a subarray from one 2-D array and one 2-D array -- 113array(3) { 114 [0]=> 115 int(1) 116 [1]=> 117 int(2) 118 [2]=> 119 int(3) 120} 121array(2) { 122 ["sub_array1"]=> 123 array(3) { 124 [0]=> 125 int(1) 126 [1]=> 127 int(2) 128 [2]=> 129 int(3) 130 } 131 ["sub_array2"]=> 132 array(3) { 133 [0]=> 134 string(1) "a" 135 [1]=> 136 string(1) "b" 137 [2]=> 138 string(1) "c" 139 } 140} 141Done