array_intersect_key.phpt 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. --TEST--
  2. Test of the array_intersect_key() and array_intersect_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. /* give nicer values */
  14. foreach ($a_f as $k=> &$a_f_el) { $a_f_el =$k*2;}
  15. foreach ($b_f as $k=> &$b_f_el) { $b_f_el =$k*2;}
  16. foreach ($c_f as $k=> &$c_f_el) { $c_f_el =$k*2;}
  17. foreach ($d_f as $k=> &$d_f_el) { $d_f_el =$k*2;}
  18. var_dump(array_intersect_key($a_f, $b_f));// keys -> 2, -20, -2500
  19. var_dump(array_intersect_ukey($a_f, $b_f, "comp_func"));// 2, 20, -2500
  20. var_dump(array_intersect_key($a_f, $c_f));// keys -> 6, 2, -20, -2500
  21. var_dump(array_intersect_ukey($a_f, $c_f, "comp_func"));// 6, 2, -20, -2500
  22. var_dump(array_intersect_key($a_f, $d_f));// -20
  23. var_dump(array_intersect_ukey($a_f, $d_f, "comp_func"));// -20
  24. var_dump(array_intersect_key($a_f, $b_f, $c_f));// 2, -20, -2500
  25. var_dump(array_intersect_ukey($a_f, $b_f, $c_f, "comp_func"));// 2, -20, -2500
  26. var_dump(array_intersect_key($a_f, $b_f, $d_f));// -20
  27. var_dump(array_intersect_ukey($a_f, $b_f, $d_f, "comp_func"));// -20
  28. var_dump(array_intersect_key($a_f, $b_f, $c_f, $d_f));// -20
  29. var_dump(array_intersect_ukey($a_f, $b_f, $c_f, $d_f, "comp_func"));//-20
  30. var_dump(array_intersect_key($b_f, $c_f));// 0, 2, -20, -2500
  31. var_dump(array_intersect_ukey($b_f, $c_f, "comp_func"));//0, 2, -20, 2500
  32. var_dump(array_intersect_key($b_f, $d_f));// -20
  33. var_dump(array_intersect_ukey($b_f, $d_f, "comp_func"));// -20
  34. var_dump(array_intersect_key($b_f, $c_f, $d_f));// -20
  35. var_dump(array_intersect_ukey($b_f, $c_f, $d_f, "comp_func"));// -20
  36. echo "----- Now testing array_intersect() ------- \n";
  37. var_dump(array_intersect($a, $b_f));
  38. var_dump(array_uintersect($a, $b, "comp_func"));
  39. var_dump(array_intersect($a, $b, $c));
  40. var_dump(array_uintersect($a, $b, $c, "comp_func"));
  41. var_dump(array_intersect($a, $b, $c, $d));
  42. var_dump(array_uintersect($a, $b, $c, $d, "comp_func"));
  43. ///////////////////////////////////////////////////////////////////////
  44. function comp_func($a, $b) {
  45. if ($a === $b) return 0;
  46. return ($a > $b)? 1:-1;
  47. }
  48. ?>
  49. --EXPECT--
  50. array(3) {
  51. [2]=>
  52. int(4)
  53. [-20]=>
  54. int(-40)
  55. [-2500]=>
  56. &int(-5000)
  57. }
  58. array(3) {
  59. [2]=>
  60. int(4)
  61. [-20]=>
  62. int(-40)
  63. [-2500]=>
  64. &int(-5000)
  65. }
  66. array(4) {
  67. [6]=>
  68. int(12)
  69. [2]=>
  70. int(4)
  71. [-20]=>
  72. int(-40)
  73. [-2500]=>
  74. &int(-5000)
  75. }
  76. array(4) {
  77. [6]=>
  78. int(12)
  79. [2]=>
  80. int(4)
  81. [-20]=>
  82. int(-40)
  83. [-2500]=>
  84. &int(-5000)
  85. }
  86. array(1) {
  87. [-20]=>
  88. int(-40)
  89. }
  90. array(1) {
  91. [-20]=>
  92. int(-40)
  93. }
  94. array(3) {
  95. [2]=>
  96. int(4)
  97. [-20]=>
  98. int(-40)
  99. [-2500]=>
  100. &int(-5000)
  101. }
  102. array(3) {
  103. [2]=>
  104. int(4)
  105. [-20]=>
  106. int(-40)
  107. [-2500]=>
  108. &int(-5000)
  109. }
  110. array(1) {
  111. [-20]=>
  112. int(-40)
  113. }
  114. array(1) {
  115. [-20]=>
  116. int(-40)
  117. }
  118. array(1) {
  119. [-20]=>
  120. int(-40)
  121. }
  122. array(1) {
  123. [-20]=>
  124. int(-40)
  125. }
  126. array(4) {
  127. [0]=>
  128. int(0)
  129. [2]=>
  130. int(4)
  131. [-20]=>
  132. int(-40)
  133. [-2500]=>
  134. &int(-5000)
  135. }
  136. array(4) {
  137. [0]=>
  138. int(0)
  139. [2]=>
  140. int(4)
  141. [-20]=>
  142. int(-40)
  143. [-2500]=>
  144. &int(-5000)
  145. }
  146. array(1) {
  147. [-20]=>
  148. int(-40)
  149. }
  150. array(1) {
  151. [-20]=>
  152. int(-40)
  153. }
  154. array(1) {
  155. [-20]=>
  156. int(-40)
  157. }
  158. array(1) {
  159. [-20]=>
  160. int(-40)
  161. }
  162. ----- Now testing array_intersect() -------
  163. array(0) {
  164. }
  165. array(3) {
  166. [2]=>
  167. int(2)
  168. [3]=>
  169. int(-20)
  170. [6]=>
  171. int(-2500)
  172. }
  173. array(3) {
  174. [2]=>
  175. int(2)
  176. [3]=>
  177. int(-20)
  178. [6]=>
  179. int(-2500)
  180. }
  181. array(3) {
  182. [2]=>
  183. int(2)
  184. [3]=>
  185. int(-20)
  186. [6]=>
  187. int(-2500)
  188. }
  189. array(1) {
  190. [3]=>
  191. int(-20)
  192. }
  193. array(1) {
  194. [3]=>
  195. int(-20)
  196. }