array_diff_variation5.phpt 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. --TEST--
  2. Test array_diff() function : usage variations - comparing integers, float
  3. and string array values
  4. --FILE--
  5. <?php
  6. /* Prototype : array array_diff(array $arr1, array $arr2 [, array ...])
  7. * Description: Returns the entries of $arr1 that have values which are not
  8. * present in any of the others arguments.
  9. * Source code: ext/standard/array.c
  10. */
  11. /*
  12. * Test how array_diff compares integers, floats and strings
  13. */
  14. echo "*** Testing array_diff() : usage variations ***\n";
  15. $arr_int = array(1, 2, 3);
  16. $arr_float = array(1.00, 2.00, 3.00);
  17. $arr_int_str = array('1', '2', '3');
  18. $arr_float_str = array('1.00', '2.00', '3.00');
  19. print "-- Compare integers and floats: --\n";
  20. var_dump(array_diff($arr_int, $arr_float));
  21. var_dump(array_diff($arr_float, $arr_int));
  22. print "-- Compare integers and strings containing an integers: --\n";
  23. var_dump(array_diff($arr_int, $arr_int_str));
  24. var_dump(array_diff($arr_int_str, $arr_int));
  25. print "-- Compare integers and strings containing floats: --\n";
  26. var_dump(array_diff($arr_int, $arr_float_str));
  27. var_dump(array_diff($arr_float_str, $arr_int));
  28. print "-- Compare floats and strings containing integers: --\n";
  29. var_dump(array_diff($arr_float, $arr_int_str));
  30. var_dump(array_diff($arr_int_str, $arr_float));
  31. print "-- Compare floats and strings containing floats: --\n";
  32. var_dump(array_diff($arr_float, $arr_float_str));
  33. var_dump(array_diff($arr_float_str, $arr_float));
  34. print "-- Compare strings containing integers and strings containing floats: --\n";
  35. var_dump(array_diff($arr_int_str, $arr_float_str));
  36. var_dump(array_diff($arr_float_str, $arr_int_str));
  37. echo "Done";
  38. ?>
  39. --EXPECTF--
  40. *** Testing array_diff() : usage variations ***
  41. -- Compare integers and floats: --
  42. array(0) {
  43. }
  44. array(0) {
  45. }
  46. -- Compare integers and strings containing an integers: --
  47. array(0) {
  48. }
  49. array(0) {
  50. }
  51. -- Compare integers and strings containing floats: --
  52. array(3) {
  53. [0]=>
  54. int(1)
  55. [1]=>
  56. int(2)
  57. [2]=>
  58. int(3)
  59. }
  60. array(3) {
  61. [0]=>
  62. string(4) "1.00"
  63. [1]=>
  64. string(4) "2.00"
  65. [2]=>
  66. string(4) "3.00"
  67. }
  68. -- Compare floats and strings containing integers: --
  69. array(0) {
  70. }
  71. array(0) {
  72. }
  73. -- Compare floats and strings containing floats: --
  74. array(3) {
  75. [0]=>
  76. float(1)
  77. [1]=>
  78. float(2)
  79. [2]=>
  80. float(3)
  81. }
  82. array(3) {
  83. [0]=>
  84. string(4) "1.00"
  85. [1]=>
  86. string(4) "2.00"
  87. [2]=>
  88. string(4) "3.00"
  89. }
  90. -- Compare strings containing integers and strings containing floats: --
  91. array(3) {
  92. [0]=>
  93. string(1) "1"
  94. [1]=>
  95. string(1) "2"
  96. [2]=>
  97. string(1) "3"
  98. }
  99. array(3) {
  100. [0]=>
  101. string(4) "1.00"
  102. [1]=>
  103. string(4) "2.00"
  104. [2]=>
  105. string(4) "3.00"
  106. }
  107. Done