code_junkie

Checking if array is multidimensional or not?

Nov 11th, 2011
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.37 KB | None | 0 0
  1. is_array($arr[0]);
  2.  
  3. $ more multi.php
  4. <?php
  5.  
  6. $a = array(1 => 'a',2 => 'b',3 => array(1,2,3));
  7. $b = array(1 => 'a',2 => 'b');
  8. $c = array(1 => 'a',2 => 'b','foo' => array(1,array(2)));
  9.  
  10. function is_multi($a) {
  11. $rv = array_filter($a,'is_array');
  12. if(count($rv)>0) return true;
  13. return false;
  14. }
  15.  
  16. function is_multi2($a) {
  17. foreach ($a as $v) {
  18. if (is_array($v)) return true;
  19. }
  20. return false;
  21. }
  22.  
  23. function is_multi3($a) {
  24. $c = count($a);
  25. for ($i=0;$i<$c;$i++) {
  26. if (is_array($a[$i])) return true;
  27. }
  28. return false;
  29. }
  30. $iters = 500000;
  31. $time = microtime(true);
  32. for ($i = 0; $i < $iters; $i++) {
  33. is_multi($a);
  34. is_multi($b);
  35. is_multi($c);
  36. }
  37. $end = microtime(true);
  38. echo "is_multi took ".($end-$time)." seconds in $iters timesn";
  39.  
  40. $time = microtime(true);
  41. for ($i = 0; $i < $iters; $i++) {
  42. is_multi2($a);
  43. is_multi2($b);
  44. is_multi2($c);
  45. }
  46. $end = microtime(true);
  47. echo "is_multi2 took ".($end-$time)." seconds in $iters timesn";
  48. $time = microtime(true);
  49. for ($i = 0; $i < $iters; $i++) {
  50. is_multi3($a);
  51. is_multi3($b);
  52. is_multi3($c);
  53. }
  54. $end = microtime(true);
  55. echo "is_multi3 took ".($end-$time)." seconds in $iters timesn";
  56. ?>
  57.  
  58. $ php multi.php
  59. is_multi took 7.53565130424 seconds in 500000 times
  60. is_multi2 took 4.56964588165 seconds in 500000 times
  61. is_multi3 took 9.01706600189 seconds in 500000 times
  62.  
  63. $ more multi.php
  64. <?php
  65.  
  66. $a = array(1 => 'a',2 => 'b',3 => array(1,2,3));
  67. $b = array(1 => 'a',2 => 'b');
  68.  
  69. function is_multi($a) {
  70. $rv = array_filter($a,'is_array');
  71. if(count($rv)>0) return true;
  72. return false;
  73. }
  74.  
  75. var_dump(is_multi($a));
  76. var_dump(is_multi($b));
  77. ?>
  78.  
  79. $ php multi.php
  80. bool(true)
  81. bool(false)
  82.  
  83. if (count($array) == count($array, COUNT_RECURSIVE))
  84. {
  85. echo 'array is not multidimensional';
  86. }
  87. else
  88. {
  89. echo 'array is multidimensional';
  90. }
  91.  
  92. function is_multi($array) {
  93. return (count($array) != count($array, 1));
  94. }
  95.  
  96. function countdim($array)
  97. {
  98. if (is_array(reset($array)))
  99. $return = countdim(reset($array)) + 1;
  100. else
  101. $return = 1;
  102.  
  103. return $return;
  104. }
  105.  
  106. return is_array(reset($value));
  107.  
  108. function isMultiArray($a){
  109. foreach($a as $v) if(is_array($v)) return TRUE;
  110. return FALSE;
  111. }
  112.  
  113. $a = array(1 => 'a',2 => 'b',3 => array(1,2,3));
  114. $b = array(1 => 'a',2 => 'b');
  115.  
  116. echo isMultiArray($a) ? 'is multi':'is not multi';
  117. echo '<br />';
  118. echo isMultiArray($b) ? 'is multi':'is not multi';
Add Comment
Please, Sign In to add comment