PHP 递归

PHP中文网
PHP中文网オリジナル
2016-05-26 08:18:151010ブラウズ

php代码

<?php
class TestControl extends Control{
	private $temp = array(
			array("id"=>3,"name"=>"小说","pid"=>1),
			array("id"=>4,"name"=>"足球","pid"=>2),
			array("id"=>1,"name"=>"书","pid"=>0),
			array("id"=>2,"name"=>"球","pid"=>0),
			array("id"=>5,"name"=>"陶瓷","pid"=>0),
			array("id"=>6,"name"=>"言情小说","pid"=>3)
	);
	public function __construct(){
		parent::__construct();
	}
	
	public function recursion(){
		$ret = $this->recursionArray($this->temp,0);
		$html = $this->cHtml($ret);
		echo $html;
	}
	
	public function recursionArray($arr,$pid){
		$tree = &#39;&#39;;
		foreach ($arr as $key=>$value){
			if($value[&#39;pid&#39;] == $pid){
				$value[&#39;pid&#39;] = $this->recursionArray($arr,$value[&#39;id&#39;]);
				$tree[] = $value;
			}
		}
		return $tree;
	}
	
	public function cHtml($arr){
// 		$html = "";
// 		foreach ($arr as $key=>$value){
// 			if($value[&#39;pid&#39;] == $pid){
// 				$html .= "<ul>";
// 				$html .= "<li class=&#39;&#39;>".$value[&#39;name&#39;];
// 				$html .= $this->cHtml($arr,$value[&#39;id&#39;]);
// 				$html .= "</li>";
// 				$html .= "</ul>";
// 			}
// 		}
// 		return $html;
		$html = "";
		$html .= "<ul>";
		foreach ($arr as $key=>$value){
			
			if(is_array($value[&#39;pid&#39;])){
				$html .="<li class=&#39;main&#39;>".$value[&#39;name&#39;];
				$html .= $this->cHtml($value[&#39;pid&#39;]);
			}else {
				$html .="<li class=&#39;&#39;>".$value[&#39;name&#39;];
			}
			
			$html .= "</li>";
		}
		$html .= "</ul>";
		return $html;
	}
}
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。