PHP使用遞迴按層級查詢資料的方法

2022-09-26 03:45:09 字數 1033 閱讀 7297

今天主要介紹一下使用遞迴來按層級查詢資料。

原理挺簡單的,主要是通過父級id一級一級的迴圈查詢子程式設計客棧級,使用php迴圈**也很容易實現,不過如果層級越多,php重複**也越多,這時可以使用遞迴來實現這功能。

1、首先查出要使用的資料組成乙個陣列(避免遞迴裡查詢資料庫,之後根據這個陣列組成自己需要的資料就可以了)

比如得到如下資料:

$data = [

['id' => '1', 'pid' => '0', 'dsp' => '1'],

['id' => '2', 'pid' => '0', 'dsp' => '2'],

['id' => '3', 'pid' => '0', 'dsp' => '3'],

['id' => '4', 'pid' => '1', 'dsp' => '1-4'],

['id' => '5', 'pid' => '4', 'dsp' => '1-4-5'],

['id' => '6', 'pid' => '5', 'dsp' => '1-4-5-6'],

['id' => '7', 'pid' => '3', 'dsp' => '3-7'],

['id' => '8', 'pid' => '2', 'dsp' => '2-8'],

['id' => '9', 'pid' => '1', 'dsp' => '1-9'],

['id' => '10', 'pid' => '4', 'dsp' => '1-4-10'],

];2、接下來使用遞迴重組資料,使資料按層級顯示。

/*** 根據父級id查詢子級資料

* @param $data 要查詢的資料

* @param int $pid 父級id

*/public function recursion($data, $pid = 0)

} return $child;

}得到結果:

[, ,

, ,, ,

, , , ]總結

本文標題: php使用遞迴按層級查詢資料的方法

本文位址:

PHP使用遞迴按層級查詢資料

今天主要介紹一下使用遞迴來按層級查詢資料。原理挺簡單的,主要是通過父級id一級一級的迴圈查詢子級,使用php迴圈 也很容易實現,不過如果層級越多,php重複 也越多,這時可以使用遞迴來實現這功能。1 首先查出要使用的資料組成乙個陣列 避免遞迴裡查詢資料庫,之後根據這個陣列組成自己需要的資料就可以了 ...

MySQL MySQL層級資料的遞迴遍歷

層級的業務資料在系統中很常見,如組織機構 商品品類等。如果要獲取層級資料的全路徑,除了快取起來,就是遞迴訪問的方式了 將層級資料快取在redis中,用redis遞迴獲取層級結構。此方法效率高。在mysql中做遞迴遍歷,oracle有遞迴的語法支援,而mysql並沒有 需要自己寫函式去遞迴。此方法效率...

無限級遞迴演算法 使用多種層級資料

1.首先資料結構必須是這樣的,資料架構中帶上parentid 才可以實現層級查詢。也可以把父級id 改為子級id 也就是 下一級的id 但是 子級資料多的話資料會有缺陷,可以根據自己的需求來調整 public class menu 2.首先 書寫,準備呼叫層級遞迴的函式,根據userid獲取使用者的...