array_shift_variation4.phpt 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. --TEST--
  2. Test array_shift() function : usage variations - multi-dimensional arrays
  3. --FILE--
  4. <?php
  5. /* Prototype : mixed array_shift(array &$stack)
  6. * Description: Pops an element off the beginning of the array
  7. * Source code: ext/standard/array.c
  8. */
  9. /*
  10. * Test popping elements from a sub-array and popping an array from an array
  11. */
  12. echo "*** Testing array_shift() : usage variations ***\n";
  13. $stack_first = array(array(1, 2, 3), 'one', 'two');
  14. $stack_last = array ('zero', 'one', array (1, 2, 3));
  15. echo "\n-- Before shift: --\n";
  16. echo "---- \$stack_first:\n";
  17. var_dump($stack_first);
  18. echo "---- \$stack_last:\n";
  19. var_dump($stack_last);
  20. echo "\n-- After shift: --\n";
  21. echo "---- Pop array from array:\n";
  22. echo "Returned value:\t";
  23. var_dump(array_shift($stack_first));
  24. echo "New array:\n";
  25. var_dump($stack_first);
  26. echo "---- Pop element from array within array:\n";
  27. echo "Returned value:\t";
  28. var_dump(array_shift($stack_last[2]));
  29. echo "New array:\n";
  30. var_dump($stack_last);
  31. echo "Done";
  32. ?>
  33. --EXPECTF--
  34. *** Testing array_shift() : usage variations ***
  35. -- Before shift: --
  36. ---- $stack_first:
  37. array(3) {
  38. [0]=>
  39. array(3) {
  40. [0]=>
  41. int(1)
  42. [1]=>
  43. int(2)
  44. [2]=>
  45. int(3)
  46. }
  47. [1]=>
  48. string(3) "one"
  49. [2]=>
  50. string(3) "two"
  51. }
  52. ---- $stack_last:
  53. array(3) {
  54. [0]=>
  55. string(4) "zero"
  56. [1]=>
  57. string(3) "one"
  58. [2]=>
  59. array(3) {
  60. [0]=>
  61. int(1)
  62. [1]=>
  63. int(2)
  64. [2]=>
  65. int(3)
  66. }
  67. }
  68. -- After shift: --
  69. ---- Pop array from array:
  70. Returned value: array(3) {
  71. [0]=>
  72. int(1)
  73. [1]=>
  74. int(2)
  75. [2]=>
  76. int(3)
  77. }
  78. New array:
  79. array(2) {
  80. [0]=>
  81. string(3) "one"
  82. [1]=>
  83. string(3) "two"
  84. }
  85. ---- Pop element from array within array:
  86. Returned value: int(1)
  87. New array:
  88. array(3) {
  89. [0]=>
  90. string(4) "zero"
  91. [1]=>
  92. string(3) "one"
  93. [2]=>
  94. array(2) {
  95. [0]=>
  96. int(2)
  97. [1]=>
  98. int(3)
  99. }
  100. }
  101. Done