《PHP實(shí)戰(zhàn):PHP樹-不需要遞歸的實(shí)現(xiàn)方法》要點(diǎn):
本文介紹了PHP實(shí)戰(zhàn):PHP樹-不需要遞歸的實(shí)現(xiàn)方法,希望對(duì)您有用。如果有疑問,可以聯(lián)系我們。
PHP樹-不需要遞歸的實(shí)現(xiàn)方法PHP編程
/** * 創(chuàng)建父節(jié)點(diǎn)樹形數(shù)組 * 參數(shù) * $ar 數(shù)組,鄰接列表方式組織的數(shù)據(jù) * $id 數(shù)組中作為主鍵的下標(biāo)或關(guān)聯(lián)鍵名 * $pid 數(shù)組中作為父鍵的下標(biāo)或關(guān)聯(lián)鍵名 * 返回 多維數(shù)組 **/ function find_parent($ar, $id='id', $pid='pid') { foreach($ar as $v) $t[$v[$id]] = $v; foreach ($t as $k => $item){ if( $item[$pid] ){ if( ! isset($t[$item[$pid]]['parent'][$item[$pid]]) ) $t[$item[$id]]['parent'][$item[$pid]] =& $t[$item[$pid]]; } } return $t; } /** * 創(chuàng)建子節(jié)點(diǎn)樹形數(shù)組 * 參數(shù) * $ar 數(shù)組,鄰接列表方式組織的數(shù)據(jù) * $id 數(shù)組中作為主鍵的下標(biāo)或關(guān)聯(lián)鍵名 * $pid 數(shù)組中作為父鍵的下標(biāo)或關(guān)聯(lián)鍵名 * 返回 多維數(shù)組 **/ function find_child($ar, $id='id', $pid='pid') { foreach($ar as $v) $t[$v[$id]] = $v; foreach ($t as $k => $item){ if( $item[$pid] ) { $t[$item[$pid]]['child'][$item[$id]] =& $t[$k]; } } return $t; } $data = array( array('ID'=>1, 'PARENT'=>0, 'NAME'=>'祖父'), array('ID'=>2, 'PARENT'=>1, 'NAME'=>'父親'), array('ID'=>3, 'PARENT'=>1, 'NAME'=>'叔伯'), array('ID'=>4, 'PARENT'=>2, 'NAME'=>'自己'), array('ID'=>5, 'PARENT'=>4, 'NAME'=>'兒子'), ); $p = find_parent($data, 'ID', 'PARENT'); $c = find_child($data, 'ID', 'PARENT'); Print_r ($c);
執(zhí)行效果:PHP編程
Array ( [1] => Array ( [ID] => 1 [PARENT] => 0 [NAME] => 祖父 [child] => Array ( [2] => Array ( [ID] => 2 [PARENT] => 1 [NAME] => 父親 [child] => Array ( [4] => Array ( [ID] => 4 [PARENT] => 2 [NAME] => 自己 [child] => Array ( [5] => Array ( [ID] => 5 [PARENT] => 4 [NAME] => 兒子 ) ) ) ) ) [3] => Array ( [ID] => 3 [PARENT] => 1 [NAME] => 叔伯 ) ) ) [2] => Array ( [ID] => 2 [PARENT] => 1 [NAME] => 父親 [child] => Array ( [4] => Array ( [ID] => 4 [PARENT] => 2 [NAME] => 自己 [child] => Array ( [5] => Array ( [ID] => 5 [PARENT] => 4 [NAME] => 兒子 ) ) ) ) ) [3] => Array ( [ID] => 3 [PARENT] => 1 [NAME] => 叔伯 ) [4] => Array ( [ID] => 4 [PARENT] => 2 [NAME] => 自己 [child] => Array ( [5] => Array ( [ID] => 5 [PARENT] => 4 [NAME] => 兒子 ) ) ) [5] => Array ( [ID] => 5 [PARENT] => 4 [NAME] => 兒子 ) )
以上這篇PHP樹-不需要遞歸的實(shí)現(xiàn)方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持維易PHP.PHP編程
轉(zhuǎn)載請(qǐng)注明本頁網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/6112.html