array_values_variation4.phpt 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. --TEST--
  2. Test array_values() function : usage variations - multi-dimensional arrays
  3. --FILE--
  4. <?php
  5. /* Prototype : array array_values(array $input)
  6. * Description: Return just the values from the input array
  7. * Source code: ext/standard/array.c
  8. */
  9. /*
  10. * Test array_values when:
  11. * 1. Passed a two-dimensional array as $input argument
  12. * 2. Passed a sub-array as $input argument
  13. * 3. Passed an infinitely recursive multi-dimensional array
  14. */
  15. echo "*** Testing array_values() : usage variations ***\n";
  16. $input = array ('zero' => 'zero', 'un' => 'one', 'sub' => array (1, 2, 3));
  17. echo "\n-- Array values of a two-dimensional array --\n";
  18. var_dump(array_values($input));
  19. echo "\n-- Array values of a sub-array --\n";
  20. var_dump(array_values($input['sub']));
  21. // get an infinitely recursive array
  22. $input[] = &$input;
  23. echo "\n-- Array values of an infinitely recursive array --\n";
  24. var_dump(array_values($input));
  25. echo "Done";
  26. ?>
  27. --EXPECTF--
  28. *** Testing array_values() : usage variations ***
  29. -- Array values of a two-dimensional array --
  30. array(3) {
  31. [0]=>
  32. string(4) "zero"
  33. [1]=>
  34. string(3) "one"
  35. [2]=>
  36. array(3) {
  37. [0]=>
  38. int(1)
  39. [1]=>
  40. int(2)
  41. [2]=>
  42. int(3)
  43. }
  44. }
  45. -- Array values of a sub-array --
  46. array(3) {
  47. [0]=>
  48. int(1)
  49. [1]=>
  50. int(2)
  51. [2]=>
  52. int(3)
  53. }
  54. -- Array values of an infinitely recursive array --
  55. array(4) {
  56. [0]=>
  57. string(4) "zero"
  58. [1]=>
  59. string(3) "one"
  60. [2]=>
  61. array(3) {
  62. [0]=>
  63. int(1)
  64. [1]=>
  65. int(2)
  66. [2]=>
  67. int(3)
  68. }
  69. [3]=>
  70. &array(4) {
  71. ["zero"]=>
  72. string(4) "zero"
  73. ["un"]=>
  74. string(3) "one"
  75. ["sub"]=>
  76. array(3) {
  77. [0]=>
  78. int(1)
  79. [1]=>
  80. int(2)
  81. [2]=>
  82. int(3)
  83. }
  84. [0]=>
  85. *RECURSION*
  86. }
  87. }
  88. Done