bug68215.phpt 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. --TEST--
  2. Bug #68215 (Behavior of foreach has changed)
  3. --FILE--
  4. <?php
  5. $arr = array(
  6. 'a' => array(
  7. 'a' => 'apple',
  8. 'b' => 'banana',
  9. 'c' => 'cranberry',
  10. 'd' => 'mango',
  11. 'e' => 'pineapple'
  12. ),
  13. 'b' => array(
  14. 'a' => 'apple',
  15. 'b' => 'banana',
  16. 'c' => 'cranberry',
  17. 'd' => 'mango',
  18. 'e' => 'pineapple'
  19. ),
  20. 'c' => 'cranberry',
  21. 'd' => 'mango',
  22. 'e' => 'pineapple'
  23. );
  24. function test(&$child, $entry)
  25. {
  26. $i = 1;
  27. foreach ($child AS $key => $fruit)
  28. {
  29. if (!is_numeric($key))
  30. {
  31. $child[$i] = $fruit;
  32. unset($child[$key]);
  33. $i++;
  34. }
  35. }
  36. }
  37. $i = 1;
  38. foreach ($arr AS $key => $fruit)
  39. {
  40. $arr[$i] = $fruit;
  41. if (is_array($fruit))
  42. {
  43. test($arr[$i], $fruit);
  44. }
  45. unset($arr[$key]);
  46. $i++;
  47. }
  48. var_dump($arr);
  49. ?>
  50. --EXPECT--
  51. array(5) {
  52. [1]=>
  53. array(5) {
  54. [1]=>
  55. string(5) "apple"
  56. [2]=>
  57. string(6) "banana"
  58. [3]=>
  59. string(9) "cranberry"
  60. [4]=>
  61. string(5) "mango"
  62. [5]=>
  63. string(9) "pineapple"
  64. }
  65. [2]=>
  66. array(5) {
  67. [1]=>
  68. string(5) "apple"
  69. [2]=>
  70. string(6) "banana"
  71. [3]=>
  72. string(9) "cranberry"
  73. [4]=>
  74. string(5) "mango"
  75. [5]=>
  76. string(9) "pineapple"
  77. }
  78. [3]=>
  79. string(9) "cranberry"
  80. [4]=>
  81. string(5) "mango"
  82. [5]=>
  83. string(9) "pineapple"
  84. }