array_diff_key.phpt 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250
  1. --TEST--
  2. Test of the array_diff_key() and array_diff_ukey()
  3. --FILE--
  4. <?php
  5. $a = array(1, 6, 2, -20, 15, 1200, -2500);
  6. $b = array(0, 7, 2, -20, 11, 1100, -2500);
  7. $c = array(0, 6, 2, -20, 19, 1000, -2500);
  8. $d = array(3, 8,-2, -20, 14, 900, -2600);
  9. $a_f = array_flip($a);
  10. $b_f = array_flip($b);
  11. $c_f = array_flip($c);
  12. $d_f = array_flip($d);
  13. $i = 1;
  14. /* give nicer values */
  15. foreach ($a_f as $k=> &$a_f_el) { $a_f_el =$k*2;}
  16. foreach ($b_f as $k=> &$b_f_el) { $b_f_el =$k*2;}
  17. foreach ($c_f as $k=> &$c_f_el) { $c_f_el =$k*2;}
  18. foreach ($d_f as $k=> &$d_f_el) { $d_f_el =$k*2;}
  19. echo "------ Test $i --------\n";$i++;// 1
  20. var_dump(array_diff_key($a_f, $b_f));// keys -> 1, 6, 15, 1200
  21. var_dump(array_diff_ukey($a_f, $b_f, "comp_func"));// 1, 6, 15, 1200
  22. echo "------ Test $i --------\n";$i++;// 2
  23. var_dump(array_diff_key($a_f, $c_f));// keys -> 1, 15, 1200
  24. var_dump(array_diff_ukey($a_f, $c_f, "comp_func"));// 1, 15, 1200
  25. echo "------ Test $i --------\n";$i++;// 3
  26. var_dump(array_diff_key($a_f, $d_f));// 1, 6, 2, 15, 1200, -2500
  27. var_dump(array_diff_ukey($a_f, $d_f, "comp_func"));// 1, 6, 2, 15, 1200, -2500
  28. echo "------ Test $i --------\n";$i++;// 4
  29. var_dump(array_diff_key($a_f, $b_f, $c_f));// 1, 15, 1200
  30. var_dump(array_diff_ukey($a_f, $b_f, $c_f, "comp_func"));// 1, 15, 1200
  31. echo "------ Test $i --------\n";$i++;// 5
  32. var_dump(array_diff_key($a_f, $b_f, $d_f));// 1, 6, 15, 1200
  33. var_dump(array_diff_ukey($a_f, $b_f, $d_f, "comp_func"));// 1, 6, 15, 1200
  34. echo "------ Test $i --------\n";$i++;// 6
  35. var_dump(array_diff_key($a_f, $b_f, $c_f, $d_f));// 1, 15, 1200
  36. var_dump(array_diff_ukey($a_f, $b_f, $c_f, $d_f, "comp_func"));//1, 15, 1200
  37. echo "------ Test $i --------\n";$i++;// 7
  38. var_dump(array_diff_key($b_f, $c_f));// 7, 11, 1100
  39. var_dump(array_diff_ukey($b_f, $c_f, "comp_func"));//7, 11, 1100
  40. echo "------ Test $i --------\n";$i++;// 8
  41. var_dump(array_diff_key($b_f, $d_f));//0, 7, 2, 11, 1100, -2500
  42. var_dump(array_diff_ukey($b_f, $d_f, "comp_func"));//0, 7, 2, 11, 1100, -2500
  43. echo "------ Test $i --------\n";$i++;// 9
  44. var_dump(array_diff_key($b_f, $c_f, $d_f));// 7, 11, 1100
  45. var_dump(array_diff_ukey($b_f, $c_f, $d_f, "comp_func"));// 7, 11, 1000
  46. function comp_func($a, $b) {
  47. if ($a === $b) return 0;
  48. return ($a > $b)? 1:-1;
  49. }
  50. ?>
  51. --EXPECTF--
  52. ------ Test 1 --------
  53. array(4) {
  54. [1]=>
  55. int(2)
  56. [6]=>
  57. int(12)
  58. [15]=>
  59. int(30)
  60. [1200]=>
  61. int(2400)
  62. }
  63. array(4) {
  64. [1]=>
  65. int(2)
  66. [6]=>
  67. int(12)
  68. [15]=>
  69. int(30)
  70. [1200]=>
  71. int(2400)
  72. }
  73. ------ Test 2 --------
  74. array(3) {
  75. [1]=>
  76. int(2)
  77. [15]=>
  78. int(30)
  79. [1200]=>
  80. int(2400)
  81. }
  82. array(3) {
  83. [1]=>
  84. int(2)
  85. [15]=>
  86. int(30)
  87. [1200]=>
  88. int(2400)
  89. }
  90. ------ Test 3 --------
  91. array(6) {
  92. [1]=>
  93. int(2)
  94. [6]=>
  95. int(12)
  96. [2]=>
  97. int(4)
  98. [15]=>
  99. int(30)
  100. [1200]=>
  101. int(2400)
  102. [-2500]=>
  103. &int(-5000)
  104. }
  105. array(6) {
  106. [1]=>
  107. int(2)
  108. [6]=>
  109. int(12)
  110. [2]=>
  111. int(4)
  112. [15]=>
  113. int(30)
  114. [1200]=>
  115. int(2400)
  116. [-2500]=>
  117. &int(-5000)
  118. }
  119. ------ Test 4 --------
  120. array(3) {
  121. [1]=>
  122. int(2)
  123. [15]=>
  124. int(30)
  125. [1200]=>
  126. int(2400)
  127. }
  128. array(3) {
  129. [1]=>
  130. int(2)
  131. [15]=>
  132. int(30)
  133. [1200]=>
  134. int(2400)
  135. }
  136. ------ Test 5 --------
  137. array(4) {
  138. [1]=>
  139. int(2)
  140. [6]=>
  141. int(12)
  142. [15]=>
  143. int(30)
  144. [1200]=>
  145. int(2400)
  146. }
  147. array(4) {
  148. [1]=>
  149. int(2)
  150. [6]=>
  151. int(12)
  152. [15]=>
  153. int(30)
  154. [1200]=>
  155. int(2400)
  156. }
  157. ------ Test 6 --------
  158. array(3) {
  159. [1]=>
  160. int(2)
  161. [15]=>
  162. int(30)
  163. [1200]=>
  164. int(2400)
  165. }
  166. array(3) {
  167. [1]=>
  168. int(2)
  169. [15]=>
  170. int(30)
  171. [1200]=>
  172. int(2400)
  173. }
  174. ------ Test 7 --------
  175. array(3) {
  176. [7]=>
  177. int(14)
  178. [11]=>
  179. int(22)
  180. [1100]=>
  181. int(2200)
  182. }
  183. array(3) {
  184. [7]=>
  185. int(14)
  186. [11]=>
  187. int(22)
  188. [1100]=>
  189. int(2200)
  190. }
  191. ------ Test 8 --------
  192. array(6) {
  193. [0]=>
  194. int(0)
  195. [7]=>
  196. int(14)
  197. [2]=>
  198. int(4)
  199. [11]=>
  200. int(22)
  201. [1100]=>
  202. int(2200)
  203. [-2500]=>
  204. &int(-5000)
  205. }
  206. array(6) {
  207. [0]=>
  208. int(0)
  209. [7]=>
  210. int(14)
  211. [2]=>
  212. int(4)
  213. [11]=>
  214. int(22)
  215. [1100]=>
  216. int(2200)
  217. [-2500]=>
  218. &int(-5000)
  219. }
  220. ------ Test 9 --------
  221. array(3) {
  222. [7]=>
  223. int(14)
  224. [11]=>
  225. int(22)
  226. [1100]=>
  227. int(2200)
  228. }
  229. array(3) {
  230. [7]=>
  231. int(14)
  232. [11]=>
  233. int(22)
  234. [1100]=>
  235. int(2200)
  236. }