3 回答

TA貢獻(xiàn)1719條經(jīng)驗 獲得超6個贊
應(yīng)該這樣做:
<?php
function array_depth(array $array) {
$max_depth = 1;
foreach ($array as $value) {
if (is_array($value)) {
$depth = array_depth($value) + 1;
if ($depth > $max_depth) {
$max_depth = $depth;
}
}
}
return $max_depth;
}
?>
編輯:非常快速地測試了它,它似乎可以工作。

TA貢獻(xiàn)1804條經(jīng)驗 獲得超8個贊
這是避免Kent Fredric指出的問題的另一種選擇。它為print_r()提供了檢查無限遞歸的功能(它做得很好),并使用輸出中的縮進(jìn)來查找數(shù)組的深度。
function array_depth($array) {
$max_indentation = 1;
$array_str = print_r($array, true);
$lines = explode("\n", $array_str);
foreach ($lines as $line) {
$indentation = (strlen($line) - strlen(ltrim($line))) / 4;
if ($indentation > $max_indentation) {
$max_indentation = $indentation;
}
}
return ceil(($max_indentation - 1) / 2) + 1;
}
- 3 回答
- 0 關(guān)注
- 588 瀏覽
添加回答
舉報