private $_keyid = 'id';
private $_keyname = 'name';
private $_keyfid = 'fid';
function __construct($keyid='',$keyname='',$keyfid='')
{
if($keyid==){$this->_keyid = $this->_keyid;}else{$this->_keyid = $keyid;}
if($keyname==){$this->_keyname = $this->_keyname;}else{$this->_keyname = $keyname;}
if($keyfid==){$this->_keyfid = $this->_keyfid;}else{$this->_keyfid = $keyfid;}
}
public function treelistall($fid,$step=0,&$fromarray,&$resultarray)
{
$step++;
foreach ($fromarray as $k=>$v){
if($v[$this->_keyfid] == $fid){
$newarray[] = $v;
}
}
if(isset($newarray)){
foreach ($newarray as $k=>$v){
$this->treelistall($v[$this->_keyid],$step,$fromarray,$resultarray);
$v['step'] = $step;
$resultarray[] = $v;
}
}
}
public function gettreelistall($fid=0,$step=0,&$fromarray,&$resultarray)
{
$step++;
foreach ($fromarray as $k=>$v){
if($v[$this->_keyfid] == $fid){
$newarray[] = $v;
}
}
if(isset($newarray)){
foreach ($newarray as $k=>$v){
$this->gettreelistall($v[$this->_keyid],$step,$fromarray,$resultarray);
$v['step'] = $step;
$resultarray[] = $v;
}
}
}
public function gettreelist($id = 0,&$fromarray)
{
$resultarray = array();
$this->gettreelistall($id,0,$fromarray,$resultarray);
$resultarray = array_reverse($resultarray);
return $resultarray;
}
public function gettreearray($id = 0,&$fromarray)
{
$result_one_array = $this->gettreelist($id,$fromarray);
foreach ($result_one_array as $k=>$v){
$result_two_array[] = array($v[$this->_keyid]);
}
if(isset($result_two_array)){
for ($i=0;$i for ($j=0;$j $result[] = $result_two_array[$i][$j];
}
}
}else{
$result = array();
}
return $result;
}
public function treelistalltop($fid,$step=0,&$fromarray,&$resultarray)
{
$step++;
foreach ($fromarray as $k=>$v){
if($v[$this->_keyid] == $fid){
$newarray[] = $v;
}
}
if(isset($newarray)){
foreach ($newarray as $k=>$v){
$this->treelistalltop($v[$this->_keyfid],$step,$fromarray,$resultarray);
$v['step'] = $step;
$resultarray[] = $v;
}
}
}
public function gettreelistalltop($fid=0,$step=0,&$fromarray,&$resultarray)
{
$step++;
foreach ($fromarray as $k=>$v){
if($v[$this->_keyid] == $fid){
$newarray[] = $v;
}
}
if(isset($newarray)){
foreach ($newarray as $k=>$v){
$this->gettreelistalltop($v[$this->_keyfid],$step,$fromarray,$resultarray);
$v['step'] = $step;
$resultarray[] = $v;
}
}
}
public function gettreelisttop($id = 0,&$fromarray)
{
$resultarray = array();
$this->gettreelistalltop($id,0,$fromarray,$resultarray);
$resultarray = array_reverse($resultarray);
return $resultarray;
}
public function gettreearraytop($id = 0,&$fromarray)
{
$result_one_array = $this->gettreelisttop($id,$fromarray);
foreach ($result_one_array as $k=>$v){
$result_two_array[] = array($v[$this->_keyfid]);
}
if(isset($result_two_array)){
for ($i=0;$i for ($j=0;$j $result[] = $result_two_array[$i][$j];
}
}
}else{
$result = array();
}
return $result;
}
public function makeoptionstring($sourcarray,$firsthint=顶级分类,$selectid=array('-1'),$type=0)
{
if($type==0){
if($firsthint != ){
$str = ''.$firsthint.'';
}else{
$str = '';
}
foreach ($sourcarray as $value){
$level=;
for($i=1;$i $level =$level.----|;
}
$selectstr = ;
if(in_array($value[$this->_keyid],$selectid)){
$selectstr = selected;
}else{
}
$str.='_keyid].'>|'.$level.$value[$this->_keyname].;
$level=;
}
}else{
$flagstep =-1;
$str = ''.$firsthint.'';
foreach ($sourcarray as $value){
$level=;
for($i=1;$i $level =$level.----|;
}
$selectstr = ;
if($type==$value[$this->_keyid]){
$flagstep = $value['step'];
}else{
if($flagstep != -1 && $value['step']>$flagstep){
}else{
if($flagstep != -1 && $value['step'] $flagstep = -1;
}
if($value[$this->_keyid] == $selectid){
$selectstr = selected;
}
$str.='_keyid].'>|'.$level.$value[$this->_keyname].;
}
}
$level=;
}
}
return $str;
}
}