each_variation5.phpt 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. --TEST--
  2. Test each() function : usage variations - Multi-dimensional arrays
  3. --FILE--
  4. <?php
  5. /* Prototype : array each(array $arr)
  6. * Description: Return the currently pointed key..value pair in the passed array,
  7. * and advance the pointer to the next element
  8. * Source code: Zend/zend_builtin_functions.c
  9. */
  10. /*
  11. * Test behaviour of each() when passed:
  12. * 1. a two-dimensional array
  13. * 2. a sub-array
  14. */
  15. echo "*** Testing each() : usage variations ***\n";
  16. $arr = array ('zero',
  17. array(1, 2, 3),
  18. 'one' => 'un',
  19. array('a', 'b', 'c')
  20. );
  21. echo "\n-- Pass each() a two-dimensional array --\n";
  22. for ($i = 1; $i < count($arr); $i++) {
  23. var_dump( each($arr) );
  24. }
  25. echo "\n-- Pass each() a sub-array --\n";
  26. var_dump( each($arr[2]));
  27. echo "Done";
  28. ?>
  29. --EXPECTF--
  30. *** Testing each() : usage variations ***
  31. -- Pass each() a two-dimensional array --
  32. array(4) {
  33. [1]=>
  34. string(4) "zero"
  35. ["value"]=>
  36. string(4) "zero"
  37. [0]=>
  38. int(0)
  39. ["key"]=>
  40. int(0)
  41. }
  42. array(4) {
  43. [1]=>
  44. array(3) {
  45. [0]=>
  46. int(1)
  47. [1]=>
  48. int(2)
  49. [2]=>
  50. int(3)
  51. }
  52. ["value"]=>
  53. array(3) {
  54. [0]=>
  55. int(1)
  56. [1]=>
  57. int(2)
  58. [2]=>
  59. int(3)
  60. }
  61. [0]=>
  62. int(1)
  63. ["key"]=>
  64. int(1)
  65. }
  66. array(4) {
  67. [1]=>
  68. string(2) "un"
  69. ["value"]=>
  70. string(2) "un"
  71. [0]=>
  72. string(3) "one"
  73. ["key"]=>
  74. string(3) "one"
  75. }
  76. -- Pass each() a sub-array --
  77. array(4) {
  78. [1]=>
  79. string(1) "a"
  80. ["value"]=>
  81. string(1) "a"
  82. [0]=>
  83. int(0)
  84. ["key"]=>
  85. int(0)
  86. }
  87. Done