1. 程式人生 > >php遞迴呼叫實現

php遞迴呼叫實現

php 實現遞迴呼叫:

有如下陣列:

$item = array(
array('id'=>1,'pid' => 0, 'name'=>'安徽省' ),
array('id'=>2,'pid' => 0, 'name'=>'浙江省' ),
array('id'=>3,'pid' => 1, 'name'=>'合肥市' ),
array('id'=>4,'pid' => 3, 'name'=>'長豐縣' ),
array('id'=>5,'pid' => 1, 'name'=>'安慶市' ),
);

function dg($array, $pid = 0){
 $arr = array();
 $temp = array();
 foreach ($array as $v) {
  if ($v['pid'] == $pid) {
   $temp = dg($array, $v['id']);
   //判斷是否存在子陣列
   if($temp)
   {
     $v['son'] = $temp;
   }
   $arr[] = $v;
  }
 }
 return $arr;
}


$array = dg($item);
echo "<pre>";
print_r($array);

相關推薦

php呼叫實現

php 實現遞迴呼叫: 有如下陣列: $item = array(array('id'=>1,'pid' => 0, 'name'=>'安徽省' ),array('id'=>2,'pid' => 0, 'name'=>'浙江省' ),ar

php 函式的三種實現方式 php利用函式實現無限級分類

遞迴函式是我們常用到的一類函式,最基本的特點是函式自身呼叫自身,但必須在呼叫自身前有條件判斷,否則無限無限呼叫下去。實現遞迴函式可以採取什麼方式呢?本文列出了三種基本方式。理解其原來需要一定的基礎知識水品,包括對全域性變數,引用,靜態變數的理解,也需對他們的作用範圍有所理解。遞迴函式也是解決無限級分類的一個很

PHP函式實現運算器

<html> <head> <meta charset="utf-8"/> </head> <body> <!-- 表單提交開始--> <form action="test-digui.php"

php實現一維陣列轉為指定樹狀結構 --- 省市區處理

### 這兩天腦殼痛,一時短路,想不到準備利用遞迴實現這個需求,最後還是要請教同事,回來自己在實現了一遍,並記錄下來 ### 原資料: // { // 廣東省: { // 廣州市: [ // "天河區", // "從化區", // "增城區" // ], // 深

PHP學習筆記』系列四:利用函式呼叫思想解決【斐波那契數列】問題和【猴子吃桃問題】問題

什麼是函式遞迴思想? 遞迴思想:把一個相對複雜的問題,轉化為一個與原問題相似的,且規模較小的問題來求解。 遞迴方法只需少量的程式就可描述出解題過程所需要的多次重複計算,大大地減少了程式的程式碼量。 但在帶來便捷的同時,也會有一些缺點,函式遞迴的執行效率不高(多次呼叫時)。

關於呼叫實現樹形選單的樣式

一:需求   現有以需求就是把某一個帖子的全部評論展示出來。 二:分析   關於對帖子的評論分為主評論和子評論,主評論就是對帖子的直接評論,子評論就是對評論的評論。 三:思路   先獲取某一個帖子的全部主評論,遞迴判斷是否有子評論,獲取子評論。 四:編碼   實體類: 1 import

php實現無限級分類樹(最新版)(轉發自php中文網的大家講道理)

php遞迴實現無限級分類樹(最新版) 程式碼如下: /** * 將資料格式化成樹形結構 * @author Xuefen.Tong * @param array $items * @return array */ function gen

js實現樹的呼叫顯示在html中

function trees(){     $.ajax({         url :'.......',         method : "po

php和迭代實現斐波那契數列

<?php //1 1 2 3 5 8 13 21 34 55 //迭代 function fib($n){ if($n<1) return -1; $a[1]=$a[2]=1;

php 實現無限極分類

public function getTree($data, $pId) { $tree = []; foreach($data as $k => $v) { if($v['parentid'] == $pId)

php樹的實現

使用到了https://github.com/akanehara/ginq,這個類庫可以在php中像.net一樣使用linq private function gettree(&$list, &$parent=null, &$tree=array())

漢諾塔呼叫(C語言實現

1.遞迴演算法 遞迴演算法:是一種直接或者間接地呼叫自身的演算法。在計算機編寫程式中,遞迴演算法對解決一大類問題是十分有效的,它往往使演算法的描述簡潔而且易於理解。 遞迴過程一般通過函式或子過程來實現。 遞迴演算法的實質:是把問題轉化為規模縮小了的同類問題的子問題。然後

PHP實現斐波那契數列( + 非實現

斐波那契數列: 1 1 2 3 5 8 13 21 34 55 … 概念: 前兩個值都為1,該數列從第三位開始,每一位都是當前位前兩位的和 規律公式為: Fn = F(n-1) + F(n+1) F:指當前這個數列 n:指數列的下標 非遞迴寫

如何使用C語言實現呼叫

遞迴的定義: 程式呼叫自身的程式設計技巧稱為遞迴,就是執行時呼叫了自己。 什麼樣的問題適合使用遞迴方式: 如果一個大問題可以拆分成幾個小問題,其中有n個小問題和原來的大問題本質一樣,只是難度小一些。這種問題可以考慮採用遞迴的方式解決。 遞迴函式的編碼原則: 1、編寫語句

php實現無限級分類樹

一.資料庫設計123456789101112131415161718192021222324252627282930313233343536373839CREATE TABLE `bg_cate` (`cate_Id` int(30) unsigned NOT NULL AU

php實現樹狀分類結構

如果設計一個遞迴的樹狀結構只需簡單的分類資料庫結構就可以了 實際樹狀結構在Model層和view層實現相應的業務邏輯就可以了 Model層程式碼(tree函式主要實現了遞迴思想): <?php class CategoryModel extends Model{

php實現無限分類生成下拉列表

php自定義函式之遞迴實現無限分類生成下拉列表,不用每次都從資料庫讀取資料。 程式碼:/*—————————————————— */ //– 遞迴實現無限分類生成下拉列表函式 //– $tpl->assign('sort_list',createSortOptio

二叉查詢樹的實現(插入+呼叫

package BinaryTree; public class BinarySearchTree { public TreeNode root; public BinarySearchTree(){ //root=new TreeNode(1,"A");

php實現無限級分類樹(牛逼)

轉載路徑:http://www.php.cn/php-weizijiaocheng-353267.html 無限級樹狀圖可以說是無限級欄目的一個顯著特徵,我們接下來就來看看兩種不同的寫法。 一.資料庫設計 1 2 3

[計算機程式設計C++] Fibonaci數列的與非演算法實現

本文是對西安交通大學C++慕課第三章程式設計練習的16題的講解。 參考部落格:https://blog.csdn.net/zombie_slicer/article/details/38871799 題目內容: 編寫程式,顯示Fibonaci序列的前n項(從