php遞歸遍歷顯示,php的遞歸

本文目錄一覽:

PHP遍歷輸出文件夾內的所有文件用遞歸演算法?

一般來說,類似這種遍歷輸出所有文件,大多採用遞歸演算法,這樣程序顯得比較簡潔,其實際執行效率來說,並不見得比其他方法更好。

以下是示例:

function file_list($path)

{

if ($handle = opendir($path))//打開路徑成功

{

while (false !== ($file = readdir($handle)))//循環讀取目錄中的文件名並賦值給$file

{

if ($file != “.” $file != “..”)//排除當前路徑和前一路徑

{

if (is_dir($path.”/”.$file))

{

// echo $path.”: “.$file.”br”;//去掉此行顯示的是所有的非目錄文件

file_list($path.”/”.$file);

}

else

{

echo $path.”: “.$file.”br”;

}

}

}

}

}

PHP遞歸無限分類的 如何統計總條數 以及對顯示的結果進行分頁?比如設置為每頁顯示10個 。

每個節點都要記錄子節點的數量c。每新增一個節點都要對各父和祖節點的子節點計數加1。這樣根節點會有總數的記錄。

這樣遞歸遍歷時也可以根據子節點數量c的來確定讀取的數量限制。比如 讀取條數計數10 就繼續遞歸

在每個節點的表上 增加子節點的id集或計數,增加根節點到父節點路徑,會方便這些操作。

php如何實現遞歸遍歷文件目錄

只需要一個遞歸函數:

function Folders($folder) {

if (!is_dir($folder)) return false;

foreach (scandir($folder) AS $f) {

if ($f == ‘.’ or $f == ‘..’) continue;

echo $f, ‘hr/’;

Folders($folder . ‘/’ . $f);    // 遞歸調用

}

}

Folders(‘Test’);

php 遞歸問題,想要將數據按照無限極分類的樣式顯示出來

首先 將json 解碼成數組, 用json_decode 函數 注意 一定要加上第二個參數 否則他會返回一個對象。接下來就是地遞歸了。這是一個最簡單的遞歸只要逐個遍歷即可。

下面是完整的代碼:

$data= json_decode($str,true);

$options = getChildren($data);

function getChildren($parent,$deep=0) {

foreach($parent as $row) {

$data[] = array(“id”=$row[‘id’], “name”=$row[‘name’],”pid”=$row[‘parentid’],’deep’=$deep);

if ($row[‘childs’]) {

$data = array_merge($data, getChildren($row[‘childs’], $deep+1));

}

}

return $data;

}

?

select name=”” id=””

?php  foreach ($options as $row) { ?

option value=”?php echo $row[‘id’] ?”?php echo str_pad(“”,$row[‘deep’]*3, “-“,STR_PAD_RIGHT); ??php echo $row[‘name’]; ?/option

?php } ?

/select

以上代碼已測試通過 效果圖如下

PHP關於通過遞歸函數顯示所有分類的問題

首先需要搞明白你的資料庫結構,你的檔案類別資料庫表 dangan_class 是不是三欄位:id、name、f_id,其中id為主鍵,f_id為自關聯的外鍵,表示上一分類,0表示最上級分類,對不對?

樹狀枚舉出所有類別的代碼可以這樣:

?php

function zilei($fid,$level){

$sql=”select id,name from dangan_class where f_id=$fid”;

$query=mysql_query($sql);

while(list($id,$name)=mysql_fetch_array($query)){

echo str_repeat(“==”,$level),$name,”a href=’?del=$id’刪除/abr\n”;

zilei($id,$level+1);

}

mysql_free_result($query);

}

zilei(0,0);

?

為了結構簡單,我上面只做了刪除的代碼,修改的部分你自行加上,你也可以先調試好了刪除的代碼再加。

代碼裡面的==是為了縮進,你可以換為全形的空白,或者其它符號。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/246084.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 13:13
下一篇 2024-12-12 13:13

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • Python遍歷集合中的元素

    本文將從多個方面詳細闡述Python遍歷集合中的元素方法。 一、for循環遍歷集合 Python中,使用for循環可以遍歷集合中的每個元素,代碼如下: my_set = {1, 2…

    編程 2025-04-29
  • Python如何遍歷字典中的key和value

    本文將詳細講解Python中如何遍歷字典中的key和value,包括多種遍歷方式以及在遍歷過程中的一些應用場景。 一、遍歷字典中的key和value 在Python中,字典是一種無…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • 台階走法遞歸

    台階走法遞歸是一個經典的遞歸問題,在計算機演算法中有著廣泛的應用。本篇文章將從遞歸的思想出發,詳細分析如何解決這個問題。 一、遞歸基礎知識 遞歸是指一個函數直接或間接地調用自身。遞歸…

    編程 2025-04-29
  • MySQL遞歸函數的用法

    本文將從多個方面對MySQL遞歸函數的用法做詳細的闡述,包括函數的定義、使用方法、示例及注意事項。 一、遞歸函數的定義 遞歸函數是指在函數內部調用自身的函數。MySQL提供了CRE…

    編程 2025-04-29
  • Python遞歸累加求和

    Python遞歸累加求和是一種常見的遞歸演算法,在解決一些數學問題或者邏輯問題時常常被使用。下面我們將從多個方面來詳細闡述這個演算法。 一、基本概念 遞歸是一種在函數中調用自身的演算法,…

    編程 2025-04-28
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • 用遞歸方法反轉一個字元串python

    本文將從以下幾個方面對用遞歸方法反轉一個字元串python做詳細的闡述,包括:遞歸的基本原理和過程、遞歸反轉字元串的實現方法、時間與空間複雜度分析等。 一、遞歸的基本原理和過程 遞…

    編程 2025-04-28
  • 二叉樹非遞歸先序遍歷c語言

    本文將為您詳細介紹二叉樹的非遞歸先序遍歷演算法,同時提供完整的C語言代碼示例。通過本文,您將了解到二叉樹的先序遍歷演算法,以及非遞歸實現的方式。 一、二叉樹的先序遍歷演算法介紹 在介紹二…

    編程 2025-04-28

發表回復

登錄後才能評論