bug20381.phpt 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. --TEST--
  2. Bug #20381 (array_merge_recursive mangles input arrays)
  3. --FILE--
  4. <?php
  5. $a = array(
  6. 'a1' => 1,
  7. 'a2' => array( 1, 2, 3 ),
  8. 'a3' => array(
  9. 'a' => array( 10, 20, 30 ),
  10. 'b' => 'b'
  11. )
  12. );
  13. $b = array( 'a1' => 2,
  14. 'a2' => array( 3, 4, 5 ),
  15. 'a3' => array(
  16. 'c' => 'cc',
  17. 'a' => array( 10, 40 )
  18. )
  19. );
  20. var_dump($a);
  21. array_merge_recursive( $a, $b );
  22. var_dump($a);
  23. ?>
  24. --EXPECT--
  25. array(3) {
  26. ["a1"]=>
  27. int(1)
  28. ["a2"]=>
  29. array(3) {
  30. [0]=>
  31. int(1)
  32. [1]=>
  33. int(2)
  34. [2]=>
  35. int(3)
  36. }
  37. ["a3"]=>
  38. array(2) {
  39. ["a"]=>
  40. array(3) {
  41. [0]=>
  42. int(10)
  43. [1]=>
  44. int(20)
  45. [2]=>
  46. int(30)
  47. }
  48. ["b"]=>
  49. string(1) "b"
  50. }
  51. }
  52. array(3) {
  53. ["a1"]=>
  54. int(1)
  55. ["a2"]=>
  56. array(3) {
  57. [0]=>
  58. int(1)
  59. [1]=>
  60. int(2)
  61. [2]=>
  62. int(3)
  63. }
  64. ["a3"]=>
  65. array(2) {
  66. ["a"]=>
  67. array(3) {
  68. [0]=>
  69. int(10)
  70. [1]=>
  71. int(20)
  72. [2]=>
  73. int(30)
  74. }
  75. ["b"]=>
  76. string(1) "b"
  77. }
  78. }