- /**
- * 返回数组维数(层级)
- * @author echo <chenj@nalashop.com>
- * @param array $arr
- * @return int
- */
- function GetArrLv($arr) {
- if (is_array($arr)) {
- function AWRSetNull(&$val) {
- $val = NULL;
- }
- #递归将所有值置NULL,目的1、消除虚构层如array("array(\\n ()"),2、print_r 输出轻松点,
- array_walk_recursive($arr, 'AWRSetNull');
- $ma = array();
- #从行首匹配[空白]至第一个左括号,要使用多行开关'm'
- preg_match_all("'^\\(|^\\s+\\('m", print_r($arr, true), $ma);
- #回调转字符串长度
- //$arr_size = array_map('strlen', current($ma));
- #取出最大长度并减掉左括号占用的一位长度
- //$max_size = max($arr_size) - 1;
- #数组层间距以 8 个空格列,这里要加 1 个是因为 print_r 打印的第一层左括号在行首
- //return $max_size / 8 + 1;
- return (max(array_map('strlen', current($ma))) - 1) / 8 + 1;
- } else {
- return 0;
- }
- }
- //该片段来自于http://www.codesnippet.cn/detail/170520133418.html
来源: http://www.codesnippet.cn/detail/170520133418.html