TF memory card cannot be formatted. PHP unlimited classification code supports array formatting and direct menu output.

WBOY
Release: 2016-07-29 08:45:14
Original
1489 people have browsed it

Copy the code The code is as follows:


/**
+------------------------------------------------
* Universal tree class
+----------------------------------------- -------
* @author yangyunzhou@foxmail.com
+-------------------------------- ----------------
* @date November 23, 2010 10:09:31
+----------------- -------------------------------
*/
class Tree
{
/**
+------------------------------------------------
* The 2-dimensional array needed to generate the tree structure
+------------------------------------------------ ------------
* @author yangyunzhou@foxmail.com
+-------------------------- --------------------------
* @var Array
*/
var $arr = array();
/**
+------------------------------------------------
* The modification symbols required to generate a tree structure can be replaced by pictures
+--------------------------------- ---------------
* @author yangyunzhou@foxmail.com
+----------------------------- --------------------------
* @var Array
*/
var $icon = array('│','├',' └');
/**
* @access private
*/
var $ret = '';
/**
* Constructor, initialize class
* @param array 2-dimensional array, for example:
* array(
* 1 => array('id'=>'1','parentid'=>0,'name '=>'First-level column one'),
* 2 => array('id'=>'2','parentid'=>0,'name'=>'First-level column two' ),
* 3 => array('id'=>'3','parentid'=>1,'name'=>'Second-level column one'),
* 4 => array( 'id'=>'4','parentid'=>1,'name'=>'Second-level column two'),
* 5 => array('id'=>'5', 'parentid'=>2,'name'=>'Second-level column three'),
* 6 => array('id'=>'6','parentid'=>3,'name '=>'Third-level column one'),
* 7 => array('id'=>'7','parentid'=>3,'name'=>'Third-level column two' )
* )
*/
function tree($arr=array())
{
$this->arr = $arr;
$this->ret = '';
return is_array($arr);
}
/**
* Get the parent array
* @param int
* @return array
*/
function get_parent($myid)
{
$newarr = array();
if(!isset($this->arr[$myid])) return false;
$pid = $this->arr[$myid]['pid'];
$pid = $this->arr[$pid]['pid'];
if(is_array($this->arr))
{
foreach($this->arr as $id => $a)
{
if($a['pid'] == $pid) $newarr[$id] = $a;
}
}
return $newarr;
}
/**
* Get the child array
* @param int
* @return array
*/
function get_child($myid)
{
$a = $newarr = array();
if(is_array($this->arr))
{
foreach($this->arr as $id => $a)
{
if($a['pid'] == $myid) $newarr[$id] = $a;
}
}
return $newarr ? $newarr : false;
}
/**
* Get the current position array
* @param int
* @return array
*/
function get_pos($myid,&$newarr)
{
$a = array();
if(!isset($this->arr[$myid])) return false;
$newarr[] = $this->arr[$myid];
$pid = $this->arr[$myid]['pid'];
if(isset($this->arr[$pid]))
{
$this->get_pos($pid,$newarr);
}
if(is_array($newarr))
{
krsort($newarr);
foreach($newarr as $v)
{
$a[$v['id']] = $v;
}
}
return $a;
}
/**
* -------------------------------------
* Get tree structure
* --- ----------------------------------
* @author yangyunzhou@foxmail.com
* @param $myid said Get all children under this ID
* @param $str Generate the basic code of the tree structure, for example: ""
* @param $sid is The selected ID, for example, needed when making a tree drop-down box
* @param $adds
* @param $str_group
*/
function get_tree($myid, $str, $sid = 0, $adds = '', $str_group = '')
{
$number=1;
$child = $this->get_child($myid);
if(is_array($child)) {
$total = count($child);
foreach($child as $id=>$a) {
$j=$k='';
if($number==$total) {
$j .= $this->icon[2];
} else {
$j .= $this->icon[1];
$k = $adds ? $this->icon[0] : '';
}
$spacer = $adds ? $adds.$j : '';
$selected = $id==$sid ? 'selected' : '';
@extract($a);
$parentid == 0 && $str_group ? eval("$nstr = "$str_group";") : eval("$nstr = "$str";");
$this->ret .= $nstr;
$this->get_tree($id, $str, $sid, $adds.$k.' ',$str_group);
$number++;
}
}
return $this->ret;
}
/**
* Similar to the previous method, but allows multiple selections
*/
function get_tree_multi($myid, $str, $sid = 0, $adds = '')
{
$number=1;
$child = $this->get_child($myid);
if(is_array($child))
{
$total = count($child);
foreach($child as $id=>$a)
{
$j=$k='';
if($number==$total)
{
$j .= $this->icon[2];
}
else
{
$j .= $this->icon[1];
$k = $adds ? $this->icon[0] : '';
}
$spacer = $adds ? $adds.$j : '';
$selected = $this->have($sid,$id) ? 'selected' : '';
@extract($a);
eval("$nstr = "$str";");
$this->ret .= $nstr;
$this->get_tree_multi($id, $str, $sid, $adds.$k.' ');
$number++;
}
}
return $this->ret;
}
function have($list,$item){
return(strpos(',,'.$list.',',','.$item.','));
}
/**
+------------------------------------------------
* Format array
+------------------------------------------------- -----
* @author yangyunzhou@foxmail.com
+---------------------------------- ---------------
*/
function getArray($myid=0, $sid=0, $adds='')
{
$number=1;
$child = $this->get_child($myid);
if(is_array($child)) {
$total = count($child);
foreach($child as $id=>$a) {
$j=$k='';
if($number==$total) {
$j .= $this->icon[2];
} else {
$j .= $this->icon[1];
$k = $adds ? $this->icon[0] : '';
}
$spacer = $adds ? $adds.$j : '';
@extract($a);
$a['title'] = $spacer.' '.$a['title'];
$this->ret[$a['id']] = $a;
$fd = $adds.$k.' ';
$this->getArray($id, $sid, $fd);
$number++;
}
}
return $this->ret;
}
}
?>

以上就介绍了tf内存卡无法格式化 PHP无限分类代码,支持数组格式化、直接输出菜单两种方式,包括了tf内存卡无法格式化方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!