array_diff_variation9.phpt 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. --TEST--
  2. Test array_diff() function : usage variations - multidimensional arrays
  3. --INI--
  4. error_reporting=E_ALL & ~E_NOTICE
  5. --FILE--
  6. <?php
  7. /* Prototype : array array_diff(array $arr1, array $arr2 [, array ...])
  8. * Description: Returns the entries of arr1 that have values which are
  9. * not present in any of the others arguments.
  10. * Source code: ext/standard/array.c
  11. */
  12. /*
  13. * Test how array_diff() compares multidimensional arrays
  14. */
  15. echo "*** Testing array_diff() : usage variations ***\n";
  16. $array1 = array('sub_array1' => array (1, 2, 3),
  17. 'sub_array2' => array ('a', 'b', 'c'));
  18. $array2 = array('sub_arraya' => array (1, 3, 5),
  19. 'sub_arrayb' => array ('a', 'z', 'y'));
  20. echo "-- Compare two 2-D arrays --\n";
  21. var_dump(array_diff($array1, $array2));
  22. var_dump(array_diff($array2, $array1));
  23. echo "\n-- Compare subarrays from two 2-D arrays --\n";
  24. var_dump(array_diff($array1['sub_array1'], $array2['sub_arraya']));
  25. var_dump(array_diff($array2['sub_arraya'], $array1['sub_array1']));
  26. var_dump(array_diff($array1['sub_array2'], $array2['sub_arrayb']));
  27. var_dump(array_diff($array2['sub_arrayb'], $array1['sub_array1']));
  28. echo "\n-- Compare a subarray from one 2-D array and one 2-D array --\n";
  29. var_dump(array_diff($array1['sub_array1'], $array2));
  30. var_dump(array_diff($array1, $array2['sub_arraya']));
  31. echo "Done";
  32. ?>
  33. --EXPECT--
  34. *** Testing array_diff() : usage variations ***
  35. -- Compare two 2-D arrays --
  36. array(0) {
  37. }
  38. array(0) {
  39. }
  40. -- Compare subarrays from two 2-D arrays --
  41. array(1) {
  42. [1]=>
  43. int(2)
  44. }
  45. array(1) {
  46. [2]=>
  47. int(5)
  48. }
  49. array(2) {
  50. [1]=>
  51. string(1) "b"
  52. [2]=>
  53. string(1) "c"
  54. }
  55. array(3) {
  56. [0]=>
  57. string(1) "a"
  58. [1]=>
  59. string(1) "z"
  60. [2]=>
  61. string(1) "y"
  62. }
  63. -- Compare a subarray from one 2-D array and one 2-D array --
  64. array(3) {
  65. [0]=>
  66. int(1)
  67. [1]=>
  68. int(2)
  69. [2]=>
  70. int(3)
  71. }
  72. array(2) {
  73. ["sub_array1"]=>
  74. array(3) {
  75. [0]=>
  76. int(1)
  77. [1]=>
  78. int(2)
  79. [2]=>
  80. int(3)
  81. }
  82. ["sub_array2"]=>
  83. array(3) {
  84. [0]=>
  85. string(1) "a"
  86. [1]=>
  87. string(1) "b"
  88. [2]=>
  89. string(1) "c"
  90. }
  91. }
  92. Done