PageRenderTime 46ms CodeModel.GetById 21ms RepoModel.GetById 0ms app.codeStats 0ms

/hphp/test/slow/collection_classes/array-diff-2.php

http://github.com/facebook/hiphop-php
PHP | 68 lines | 66 code | 2 blank | 0 comment | 5 complexity | 6adbbabb814ba170a0e539ef61ebe178 MD5 | raw file
Possible License(s): LGPL-2.1, BSD-2-Clause, BSD-3-Clause, MPL-2.0-no-copyleft-exception, MIT, LGPL-2.0, Apache-2.0
  1. <?hh
  2. function f($x) {
  3. $arr = (array)$x;
  4. uasort(inout $arr, function($a,$b) {
  5. if (is_int($a) != is_int($b)) {
  6. if (is_int($a)) return -1;
  7. return 1;
  8. }
  9. if ($a < $b) return -1;
  10. if ($a > $b) return 1;
  11. return 0;
  12. });
  13. var_dump($arr);
  14. }
  15. function main() {
  16. $a1 = varray["1", 1, "2", 3, 4, "a", "7"];
  17. $m1 = Map {0 => "1", 1 => 1, 2 => "2", 3 => 3, 4 => 4, 5 => "a", 6 => "7"};
  18. $s1 = Set {"1", 1, "2", 3, 4, "a", "7"};
  19. $a2 = varray[1, "3", 5, "a"];
  20. $m2 = Map {0 => 1, 1 => "3", 2 => 5, 3 => "a"};
  21. $s2 = Set {1, "3", 5, "a"};
  22. $a3 = varray["0", 7];
  23. $m3 = Map {0 => "0", 1 => 7};
  24. $s3 = Set {"0", 7};
  25. f(array_diff($a1, $a2));
  26. f(array_diff($m1, $a2));
  27. f(array_diff($s1, $a2));
  28. f(array_diff($a1, $m2));
  29. f(array_diff($m1, $m2));
  30. f(array_diff($s1, $m2));
  31. f(array_diff($a1, $s2));
  32. f(array_diff($m1, $s2));
  33. f(array_diff($s1, $s2));
  34. echo "========\n";
  35. f(array_diff($a1, $a2, $a3));
  36. f(array_diff($m1, $a2, $a3));
  37. f(array_diff($s1, $a2, $a3));
  38. f(array_diff($a1, $m2, $a3));
  39. f(array_diff($m1, $m2, $a3));
  40. f(array_diff($s1, $m2, $a3));
  41. f(array_diff($a1, $s2, $a3));
  42. f(array_diff($m1, $s2, $a3));
  43. f(array_diff($s1, $s2, $a3));
  44. f(array_diff($a1, $a2, $m3));
  45. f(array_diff($m1, $a2, $m3));
  46. f(array_diff($s1, $a2, $m3));
  47. f(array_diff($a1, $m2, $m3));
  48. f(array_diff($m1, $m2, $m3));
  49. f(array_diff($s1, $m2, $m3));
  50. f(array_diff($a1, $s2, $m3));
  51. f(array_diff($m1, $s2, $m3));
  52. f(array_diff($s1, $s2, $m3));
  53. f(array_diff($a1, $a2, $s3));
  54. f(array_diff($m1, $a2, $s3));
  55. f(array_diff($s1, $a2, $s3));
  56. f(array_diff($a1, $m2, $s3));
  57. f(array_diff($m1, $m2, $s3));
  58. f(array_diff($s1, $m2, $s3));
  59. f(array_diff($a1, $s2, $s3));
  60. f(array_diff($m1, $s2, $s3));
  61. f(array_diff($s1, $s2, $s3));
  62. }
  63. <<__EntryPoint>>
  64. function main_array_diff_2() {
  65. main();
  66. }