You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

250 lines
4.0 KiB

20 years ago
20 years ago
20 years ago
20 years ago
20 years ago
20 years ago
20 years ago
20 years ago
20 years ago
20 years ago
20 years ago
  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. }