function array_depth($el) { return is_array($el) ? max(array_map('array_depth', $el)) + 1 : 0; }
var_dump(array_depth($array)); -- justin On Fri, May 18, 2012 at 1:27 PM, Joey Derrico <joeyd...@gmail.com> wrote: > I am trying to count the number of dimensions in an array. I used my > google-fu and came up with answers that don't actually work because I can > have multi-dimensional array's where one int he middle is multi and the one > after not. Below is my latest set of test code (I have been playing with it > for hours (with varying results), none correct), It currently returns 15 > dimensions and should be returning 5 > > <?php > echo "\n"; > $test = new test(); > > $array = array(); > $array[0] = '[0]'; > $array[1][0] = '[1][0]'; > $array[1][1] = '[1][1]'; > $array[2][0][0] = '[2][0][0]'; > $array[2][0][1] = '[2][0][1]'; > $array[2][1][0] = '[2][1][0]'; > $array[2][1][1] = '[2][1][1]'; > $array[3][0][0][0] = '[3][0][0][0]'; > $array[3][0][0][1] = '[3][0][0][1]'; > $array[3][1][0][0] = '[3][1][0][0]'; > $array[3][1][0][1] = '[3][1][0][1]'; > $array[3][1][1][0] = '[3][1][1][0]'; > $array[3][1][1][1] = '[3][1][1][1]'; > $array[4][0][0][0][0] = '[4][0][0][0][0]'; > $array[4][0][0][0][1] = '[4][0][0][0][1]'; > $array[4][1][0][0][0] = '[4][1][0][0][0]'; > $array[4][1][0][0][1] = '[4][1][0][0][1]'; > $array[4][1][1][0][0] = '[4][1][1][0][0]'; > $array[4][1][1][0][1] = '[4][1][1][0][1]'; > $array[4][1][1][1][0] = '[4][1][1][1][0]'; > $array[4][1][1][1][1] = '[4][0][0][0][1]'; > $array[5][0][0][0] = '[5][0][0][0]'; > $array[5][0][0][1] = '[5][0][0][1]'; > $array[5][1][0][0] = '[5][1][0][0]'; > $array[5][1][0][1] = '[5][1][0][1]'; > $array[5][1][1][0] = '[5][1][1][0]'; > $array[5][1][1][1] = '[5][1][1][1]'; > $array[6][0][0] = '[6][0][0]'; > $array[6][0][1] = '[6][0][1]'; > $array[6][1][0] = '[6][1][0]'; > $array[6][1][1] = '[6][1][1]'; > $array[7][0] = '[7][0]'; > $array[7][1] = '[7][1]'; > $array[8] = '[8]'; > > echo 'The array has '.$test->countNumberOfDimensionsOfAnArray($array)." > dimensions\n"; > //echo print_r($array,TRUE); > > > class test > { > public function isMultDimensionalArray($array) > { > $return = FALSE; > > if(is_array($array)){ > foreach($array as $value){ > if(is_array($value)){ > $return = TRUE; > } > } > } > return $return; > } > > public function countNumberOfDimensionsOfAnArray($array) > { > $dimensions = 0; > > if(is_array($array)){ > $dimensions++; > foreach($array as $key=>$value){ > if($this->isMultDimensionalArray($value)){ > $dimensions = $dimensions + > $this->countNumberOfDimensionsOfAnArray($value); > } > } > } > return $dimensions; > } > } > ?> > > Joey Derrico > > _______________________________________________ > New York PHP User Group Community Talk Mailing List > http://lists.nyphp.org/mailman/listinfo/talk > > http://www.nyphp.org/show-participation -- http://justinhileman.com _______________________________________________ New York PHP User Group Community Talk Mailing List http://lists.nyphp.org/mailman/listinfo/talk http://www.nyphp.org/show-participation