PHPの再帰的なアルゴリズム

再帰的な階乗を通じて達成

関数マルチ($ n)が{

    IF($ N - == 0){ 
リターン1; //再帰終了。
}
$ *マルチn値= $;($ -N- 1)
戻り$値;
}

再帰的にフィボナッチ数を実装
FIB関数(N- $){ 
IF($ $ N-N - == == 0 || 1){
リターン1; //再帰終了。
}
$値= FIB(N - $ 1)FIB +(2-N- $)。
$値リターン;
}
(6)のFIBエコー。



$カテゴリ= [ 
[
'ID' =>。1、
'名' => '男性'、
'PID' => 0、
]、
[
'ID' => 2、
'名前' => '女性'、
'PID' => 0、

]、
[
'ID' => 3、
'名称' => 'メンズジャケット'、
'PID' => 1、
]、
[
'ID' =>。4、
'名前' => 'ジャケット'、
'PID' =>。3

]、
[
'ID' =>。5、
'名'=>'綿'
' PID「=> 3、。
]、
];

で親クラスIDのすべてのサブクラスを取得します。
関数recursiveCategory($のPID、$カテゴリ){ 
$データ= [];
foreachの($アイテムとして$カテゴリ){
IF($アイテム[ 'PID'] == $のPID){
$ [ 'ID'] = $項目[ 'ID'] ARR。
$ [ '名前'] = $アイテム[ 'name'を] ARR。
$ケイト= recursiveCategory($アイテム[ 'ID']、$カテゴリ)。
もし(空($のケイト)!){
$ ARR [] = $ケイト。
}
$データ[] = $ ARR。
設定を解除($のARR)。
}
}
$のデータを返します。
}。

サブクラスで親クラスのすべてを取得します
関数getCategoryByChild($たchildID、$カテゴリ){ 
$データ= [];
foreachの($アイテムとして$カテゴリ){
IF($アイテム[ 'ID'] == $たchildID){
$ [ 'ID'] = $項目[ 'ID'] ARR。
$ [ '名前'] = $アイテム[ 'name'を] ARR。
もし($アイテム[ 'PID']!= 0){
$ ARR [] = getCategoryByChild($アイテム[ 'PID']、$カテゴリ);
}
$データ[] = $ ARR。
}
}
$のデータを返します。
}












 

おすすめ

転載: www.cnblogs.com/paulversion/p/11706876.html