<?php
$arr = array(
array('id' => 111, 'pid' => 0, 'name' => '江西省'),
array('id' => 5, 'pid' => 2, 'name' => '雞西市'),
array('id' => 2, 'pid' => 0, 'name' => '黑龍江省'),
array('id' => 3, 'pid' => 111, 'name' => '南昌市'),
array('id' => 6, 'pid' => 4, 'name' => '香坊區'),
array('id' => 27, 'pid' => 4, 'name' => '南崗區'),
array('id' => 8, 'pid' => 6, 'name' => '和興路'),
array('id' => 9, 'pid' => 27, 'name' => '西大直街'),
array('id' => 10, 'pid' => 8, 'name' => '東北林業大學'),
array('id' => 11, 'pid' => 9, 'name' => '哈爾濱工業大學'),
array('id' => 12, 'pid' => 8, 'name' => '哈爾濱師範大學'),
array('id' => 13, 'pid' => 111, 'name' => '贛州市'),
array('id' => 14, 'pid' => 13, 'name' => '贛縣'),
array('id' => 15, 'pid' => 13, 'name' => '于都縣'),
array('id' => 16, 'pid' => 14, 'name' => '茅店鎮'),
array('id' => 17, 'pid' => 14, 'name' => '大田鄉'),
array('id' => 18, 'pid' => 16, 'name' => '義源村'),
array('id' => 19, 'pid' => 16, 'name' => '上壩村')
); static $_arr2 = array(); //用於存放整理好的資料
/*** 對陣列按照子父類順序整理,並且直接獲取欄目的所有子欄目數
* @param array $_arr2 用於存放整理結果的陣列
* @param array $arr 需要整理的陣列
* @param number $pid 父欄目id,會遞迴找出該父親欄目下的所有子欄目
* @param number $level 第幾級
* @return array $num 子欄目數
*/function gettreeandnum(&$_arr2, $arr, $pid=0, $level=0 ,$isclear=false)
}return $num; }
/*** 對陣列按照子父類順序整理
* @param array $arr 需要整理的陣列
* @param number $pid 父欄目id
* @param number $level 第幾級
* @return array $_arr 整理好的陣列
*/function gettree($arr, $pid=0, $level=0, $isclear=false)
} return $_arr;
}
/*** 獲取乙個欄目的所有子欄目數
* @param array $arr 陣列
* @param number $catid 父欄目
* @return number $_ret 乙個欄目的子欄目數
*/function getchildrennums($arr, $catid, $isclear=false)
}return $_ret;
} /**
* 獲取列表樹,此方法先遍歷整理好的陣列,在遍歷的過程中再次去呼叫函式獲取該欄目的所有子欄目數目
* @param unknown $arr 陣列
*/function getlist($arr) }
function getnewlist($arr)
} /**
* 返回當前的時間,以秒為單位
* @return number
*/function getmictime()
/*** 效能測試,由於資料量比較小,迴圈後才能見到差距,資料量大的話,差距會明顯些
* 總結來說,方案2的效率會高些
*/echo '';
/****************方案1**********************/
$time1 = getmictime();
for($i = 0; $i < 4000; $i++)
$time2 = getmictime();
echo '方案1的效能為:'.($time2-$time1).'';
/****************方案2**********************/
$time3 = getmictime();
for($i = 0; $i < 4000; $i++)
$time4 = getmictime();
echo '方案2的效能為:'.($time4-$time3).'
';
PHP 無限分類 下拉列表實現
今天在這簡單總結一下php裡無限分類的用法,當然在實際專案或者業務中,是一定結合著資料庫來完成的,這裡我是在做mvc架構練習中,封裝了無限分類的model類來完成的,糾結了一段時間,所以特此寫blog總結,無限分類的入門理解 什麼是無限級分類?無限級分類是一種分類技巧,例如部門組織,文章分類,學科分...
PHP無限極分類樹
建表資料 create table limit tree id int 10 unsigned not null auto increment,pid int 10 unsigned not null default 0 name varchar 64 not null default primar...
Php無限層級,並顯示層級數
這裡的arr是直接從資料庫取出的,僅作為測試資料 arr array array id 1,name 一級選單a pid 0 pid 父級id array id 2,name 一級選單b pid 0 array id 3,name 二級選單a pid 1 array id 4,name 二級選單b ...