php無限分類-ag真人国际官网
㈠ 如何使用php實現無限級分類
你還在用浪費時間又浪費內存的遞歸遍歷無限極分類嗎,看了該篇文章,我覺得你應該換換了。
這是我在oschina上看到的一段非常精簡的php無限極分類生成樹方法,巧在引用,整理分享了。
復制代碼代碼如下:
function generatetree($items){
$tree = array();
foreach($items as $item){
if(isset($items[$item['pid']])){
$items[$item['pid']]['son'][] = &$items[$item['id']];
}else{
$tree[] = &$items[$item['id']];
}
}
return $tree;
}
$items = array(
1 => array('id' => 1, 'pid' => 0, 'name' => '安徽省'),
2 => array('id' => 2, 'pid' => 0, 'name' => '浙江省'),
3 => array('id' => 3, 'pid' => 1, 'name' => '合肥市'),
4 => array('id' => 4, 'pid' => 3, 'name' => '長豐縣'),
5 => array('id' => 5, 'pid' => 1, 'name' => '安慶市'),
);
print_r(generatetree($items));
可以看到下面列印的結果:
復制代碼代碼如下:
array
(
[0] => array
(
[id] => 1
[pid] => 0
[name] => 安徽省
[son] => array
(
[0] => array
(
[id] => 3
[pid] => 1
[name] => 合肥市
[son] => array
(
[0] => array
(
[id] => 4
[pid] => 3
[name] => 長豐縣
)
)
)
[1] => array
(
[id] => 5
[pid] => 1
[name] => 安慶市
)
)
)
[1] => array
(
[id] => 2
[pid] => 0
[name] => 浙江省
)
)
上面生成樹方法還可以精簡到5行:
復制代碼代碼如下:
function generatetree($items){
foreach($items as $item)
$items[$item['pid']]['son'][$item['id']] = &$items[$item['id']];
return isset($items[0]['son']) ? $items[0]['son'] : array();
}
上面這種無限極分類數據樹形結構化的方法值得借鑒。但是我覺得這段代碼實際用途並不明顯啊,你想取出格式化的樹形數據還是要遞歸啊:
復制代碼代碼如下:
/**
* 如何取數據格式化的樹形數據
*/
$tree = generatetree($items);
function gettreedata($tree){
foreach($tree as $t){
echo $t['name'].'
';
if(isset($t['son'])){
gettreedata($t['son']);
}
}
}
gettreedata($tree);
㈡ php無限級分類
同一個表中存放父類和子類,但每一條記錄都要有parent_id和category_id,最頂級分類的父id為0,然後第二層分類的父id只要是相應父類的分類id,以此類推。
顯示的時候,先排序,按id就能分出來。
㈢ php如何查找會員無限分類的所有上級和所有下級
這個就要看你的資料庫是怎麼實現的。
我之前給一個人做個一個類似的會員推廣提成的模塊,就a推廣出的a-1,a-2繼續推廣,得到a-1-1,a-1-2等等。
我的資料庫設計思路如下:
用戶表中有一個son這么一個欄位,這個欄位中存放名下所有會員的id,用分號隔開。
這個欄位的維護:
比如a-1-1推廣出了一個a-1-1-1,此新用戶的id是12345,那麼給a-1-1 a-1 a這個三個用戶son欄位內均添加12345這個id,刪除一個用戶做法一樣。
有了這張表就能實現你要的效果。
查一個會員名下所有的會員,只需要讀取該會員的son欄位即可
查一個會員的上級 怎在資料庫中所搜son欄位,含有此會員id的都是他的上級會員。
當然,還有一個欄位是標記此會員的直接上級會員,這樣 一張表就能從任意會員得到整個會員推廣樹。
希望這個思路能幫到你。
㈣ php無限分類 遞歸中的靜態數組
將靜態數組改為局部數組
㈤ php mysql實現無限分類
..................................
不知道你要的分類是什麼分類
是寫一個方法實現對數據分類?
while(條件){
分類
}
條件為:如果沒有此類
㈥ 求php後台無限級分類代碼,謝謝
資料庫這么建就好了
id | belongid | name | img
1 | 0 | 名字a | url //a為根,0代表根級別
2 | 1 | 名字b | url //b為a的分支
3 | 1 | 名字c | url //c為a的分支
4 | 2 | 名字d | url //d為b的分支
獲取get belongid,然後belongid為空或者為0的時候顯示資料庫belongid為0的人,點擊任何一個人,進入一個子頁面belongid都為被點擊的這個人的id,在哪個belongid寫入資料庫的信息,那麼,添加的這個人就belongid=get[「belongid」],這里說的是添加
下面來講講提取數據,為了方便我們新加一個欄位,表明當前用戶在第幾級,tmp欄位,你也可以生成緩存表或緩存文件,先select 出 tmp=0的,然後tmp=1的,直到取到最大的一級,然後tmp=1級的belongid找0級uid的,這樣子依次就可以獲得所有用戶樹形關系了
代碼的話。。
$iclass=$_get['iclass'];
if($iclass=="")$iclass="0";
$sql="select * from movie_iclass where bid='$iclass' order by id desc";
$result=mysql_query($sql);
$num=mysql_num_rows($result);
這樣,存進去就好了,應該很簡單的
㈦ php遞歸無限分類縮進怎麼做 急啊
folder();
// 主要是 $tab 參數,該參數為當前分類縮進層次
function folder($parentid = 0, $tab = 0) {
$sql = "select * from choin_article_sort where parentid = '{$parentid}' order by id desc";
$query = mysql_query($sql);
while ($rs = mysql_fetch_array($query)) {
// 輸出推薦使用 echo 命令
echo str_repeat('-', $tab); // 縮進填充符你可以自己設定,也可以是圖片等等
echo '中間循環出的內容';
folder($rs["id"], $tab 1);
}
}
?>
㈧ php無限級分組演算法問題
先建立資料庫 id name pid
1 首頁 0
2 問題分類 0
3 知道欄目 0
4 首頁_1 1
5 首頁_2 1
6 問題分類_1 2
先查出pid=0; 的數據 //這是第一級
第一級: 首頁(id=1) 問題分類(id=2) 知道欄目(id=3)
用jquery 時間,滑鼠懸停時間
比如:滑鼠移到首頁上,就會觸發jquery事件,
得到首頁的id
這里用id去查出 pid=id的數據,
如果id=1;
第二級:首頁_1(id=4) 首頁_2(id=5)
這里就和上面一樣了
㈨ php如何通過傳引用的思想實現無限分類(代碼
在我的simpla中,用到了無限分類,使用了php的傳引用思想實現無限分類的方法,可以完美展示類似這樣的分類模式。
id pid name
1 0 四川
2 0 重慶
3 1 成都
4
1 綿陽
5 3 高新區
代碼如下所示:
/**
* 數組變成無限級分類--傳引用思想
* @param array $items
* @return array
*/
public static function get_tree($orig) {
//解決下標不是1開始的問題
$items = array();
foreach ($orig as $key => $value) {
$items[$value[『id『]] = $value;
}
//開始組裝
$tree = array();
foreach ($items as $key => $item) {
if ($item[『pid『] == 0) { //為0,則為1級分類
$tree[] = &$items[$key];
} else {
if (isset($items[$item[『pid『]])) { //存在值則為二級分類
$items[$item[『pid『]][『child『][] = &$items[$key]; //傳引用直接賦值與改變
} else { //至少三級分類
//由於是傳引用思想,這里將不會有值
$tree[] = &$items[$key];
}
}
}
return $tree;
}
以上內容很簡單吧,如有錯誤或者更好的方法,希望可以相互交流。謝謝。!
㈩ 急求php遞歸無限分類,當前位置寫法
$testarray = array();
function getsort($num,&$testarray){
$db = new mysqli("localhost","root","123456","test");
$sql = "select * from test where bid=".$num;
$result = $db->query($sql);
if($result){
$search = array();
while($row=$result->fetch_assoc()){
$testarray[] = $row['cloumnsname'];
$search[] = $row['id'];
}
foreach($search as $key=>$value){
getsort($value,$testarray);
}
}
}
$testarray[] = "首頁";
getsort(0,$testarray);
$test = implode(">",$testarray);
echo $test;
?>
有不懂的可以問我!