PHP 陣列可以包含巢狀數組,從而建立複雜的層次結構。確定這些數組中嵌套的最大深度對於資料分析和操作至關重要。
決定陣列深度的一種方法是遞歸遍歷其元素,計算等級數。以下函數 array_depth() 將陣列作為輸入並計算其最大深度:
function array_depth($array) { $max_depth = 0; foreach ($array as $element) { if (is_array($element)) { $depth = $array_depth($element); if ($depth > $max_depth) { $max_depth = $depth; } } } return $max_depth + 1; }
在此函數中:
另一種方法避免了無限遞歸的潛在問題。它利用 print_r() 輸出中的縮進,反映數組的結構。下面的 array_depth() 函數使用了這個方法:
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; }
以上是如何決定多維 PHP 陣列的深度?的詳細內容。更多資訊請關注PHP中文網其他相關文章!