欧美日韩不卡一区二区三区,www.蜜臀.com,高清国产一区二区三区四区五区,欧美日韩三级视频,欧美性综合,精品国产91久久久久久,99a精品视频在线观看

php語言

PHP高效獲取樹結(jié)構(gòu)信息

時(shí)間:2025-02-22 16:36:18 php語言 我要投稿
  • 相關(guān)推薦

PHP高效獲取樹結(jié)構(gòu)信息

  學(xué)習(xí)是通過具體的例子來多練習(xí),知識(shí)點(diǎn)才會(huì)掌握鞏固。以下是百分網(wǎng)小編精心為大家整理的PHP教程,希望對(duì)大家有所幫助!更多內(nèi)容請(qǐng)關(guān)注應(yīng)屆畢業(yè)生網(wǎng)!

  在開發(fā)中,經(jīng)常有一些簡(jiǎn)單的樹形結(jié)構(gòu)的存儲(chǔ),比如產(chǎn)品的多級(jí)分類,多級(jí)導(dǎo)航欄菜單等,這些物體有一個(gè)特性,就是通常會(huì)獲取整棵樹結(jié)構(gòu)。在數(shù)據(jù)庫里保存樹結(jié)構(gòu)的方法主要有三種,最簡(jiǎn)單的一就是通過一個(gè)father_id指向當(dāng)前結(jié)構(gòu)的父節(jié)點(diǎn)。對(duì)于這樣的小結(jié)構(gòu),一般我們使用最簡(jiǎn)單的方式存儲(chǔ)。

  當(dāng)要獲取整棵樹結(jié)構(gòu),網(wǎng)上一般用遞歸法,這種方式代碼簡(jiǎn)單易懂,但是缺點(diǎn)是需要執(zhí)行多次數(shù)據(jù)庫查詢,而且后面幾次獲取的元素?cái)?shù)量很少甚至為0,效率很差。

  其實(shí),遇到這種情況,可以將所有的元素全部從數(shù)據(jù)庫獲取出來,然后再根據(jù)獲取的元素father_id構(gòu)建樹結(jié)構(gòu),這樣就可以解決執(zhí)行多次數(shù)據(jù)庫查詢的性能損耗。下面就以我在實(shí)際項(xiàng)目中獲取多級(jí)導(dǎo)航欄菜單中的函數(shù)進(jìn)拋磚引玉了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/*
通過數(shù)據(jù)庫獲取所有元素,通過下面函數(shù)構(gòu)造樹形結(jié)構(gòu)
*/
private function getTree($menus)
{
    $id $level = 0;
$menuobjs=array();
    $tree array();
$notrootmenu=array();
    foreach($menus as $menu){
       $menuobj=new stdClass();
$menuobj->menu=$menu;
    $id $menu['id'];
$level $menu['father_id'];
$menuobj->nodes = array();
$menuobjs[$id]=$menuobj;
if ($level) {
$notrootmenu[]=$menuobj;
else {
$tree[] = $menuobj;
}
    }
foreach($notrootmenu as $menuobj){
$menu=$menuobj->menu;
$id $menu['id'];
$level $menu['father_id'];
$menuobjs[$level]->nodes[]=$menuobj;
}
    return $tree;
    }
}

 

  【拓展閱讀】php好學(xué)嗎?幾個(gè)月能學(xué)會(huì)php開發(fā)嗎?

  好多要來硬漢科技學(xué)習(xí)的學(xué)員在來之前都問我:老師,我不是專業(yè)的計(jì)算機(jī)學(xué)生,我沒有接觸過PHP ,我一點(diǎn)基礎(chǔ)也沒有,我能學(xué)會(huì)PHP嗎?也有些一直想來硬漢科技學(xué)習(xí)PHP的學(xué)員很好奇,這么多的內(nèi)容,在4個(gè)多月的時(shí)間就全部學(xué)完,真的可以么?這幾個(gè)月以后自己還是一問三不知怎么辦?今天,我們就來說說學(xué)習(xí)PHP開發(fā)這件事。

  PHP是什么,應(yīng)用得怎么樣?

  PHP,一個(gè)嵌套的縮寫名稱,是英文超級(jí)文本預(yù)處理語言(PHP:Hypertext Preprocessor)的縮寫。PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本預(yù)處理器”)是一種通用開源腳本語言。語法吸收了C語言、Java和Perl的特點(diǎn),利于學(xué)習(xí),使用廣泛,主要適用于Web開發(fā)領(lǐng)域,現(xiàn)在被很多的網(wǎng)站編程人員廣泛的運(yùn)用(以上為專業(yè)解釋)。小編還想說的是,很多大型網(wǎng)站其實(shí)都是用PHP語言編寫的,比如:百度、阿里巴巴、騰訊(簡(jiǎn)稱BAT)。

  4個(gè)多月能學(xué)會(huì)PHP嗎?

  在回答這個(gè)問題之前小編想說一下大道理,有些時(shí)候,我們往往把事情想的太困難,而真正去做的時(shí)候,才會(huì)發(fā)現(xiàn)自己的潛力。永遠(yuǎn)不要懷疑自己的能力,有時(shí)候你不逼自己一把,根本不知道自己有多優(yōu)秀,與其前怕狼后怕虎,不如拼盡全力的去學(xué)習(xí)這幾個(gè)月。

  現(xiàn)在回到這個(gè)問題上來,對(duì)于沒有基礎(chǔ)的朋友幾個(gè)月真的能學(xué)會(huì)PHP開發(fā)嗎?小編的回答是:能,也不能!有人肯定就會(huì)對(duì)我這個(gè)答案嗤之以鼻,說你的答案和不回答有什么區(qū)別呢?其實(shí),大道理誰都明白。對(duì)于有毅力肯下功夫?qū)W習(xí)的人說的,是可以學(xué)好的;但那些一遇到困難就退縮的人來說,就真是遺憾了。在硬漢科技每天8:30準(zhǔn)時(shí)上課,并且還有晚自習(xí),技術(shù)老師也會(huì)全程陪著你,有不懂的問題可以隨時(shí)詢問。這樣的學(xué)習(xí)環(huán)境下,你說能不能學(xué)會(huì)PHP?

  學(xué)習(xí)天貓、UI、Web前端等任何一門新的技術(shù)也是這樣,“世上無難事,只怕有心人”你沒有下定決心去做一件事,怎么知道自己不能學(xué)會(huì)呢。

  舉個(gè)栗子:硬漢科技在2015年11月PHP的班級(jí)里面有一名學(xué)員是高中畢業(yè)生,并且已經(jīng)在酒吧工作了好幾年了。用他自己的話來說:僅有的一點(diǎn)點(diǎn)知識(shí)早已經(jīng)丟到了爪哇國了,但是通過他在硬漢科技的5個(gè)月的努力學(xué)習(xí),他不僅找到了工作,而且工資還是班里的佼佼者,這樣,你有沒有信心學(xué)好PHP了呢?

【PHP高效獲取樹結(jié)構(gòu)信息】相關(guān)文章:

PHP如何獲取系統(tǒng)信息11-04

如何利用PHP語言獲取連接信息10-01

PHP獲取星期的方法07-06

PHP如何獲取表單07-27

php創(chuàng)建cookie獲取方法10-28

php怎么獲取input的id09-10

php創(chuàng)建獲取cookie及基礎(chǔ)要點(diǎn)11-02

使用PHP獲取數(shù)組的鍵與值10-08

PHP簡(jiǎn)單獲取多個(gè)checkbox值06-10