a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 學(xué)院 > 邏輯算法 > 正文

php:樹形結(jié)構(gòu)的算法 4

2024-09-08 23:18:45
字體:
供稿:網(wǎng)友
  <?php
  /**
  * 顯示列表
  * @access public
  */
  function displist()
  {
  //不縮進(jìn)的顯示方式
  // $this->misdisplistindex = true;
  // echo('<p align="right"><a href="?action=new&part=role">增加新角色</a>  </p>'); _fcksavedurl=""?action=new&part=role">增加新角色</a>  </p>');"
  //
  // $this->mlisttitle = '用戶角色列表';
  // $this->setdataoption('list');
  //
  // $this->setquerytable( array($this->mtableuserrole) );
  //
  // //查詢順序
  // $this->setqueryorder( 'asc', $this->mtableuserrole, 'sequence' );
  //
  // $this->query('list');
  // parent::displist();
  
  // //另外一種顯示方式,用數(shù)組作為堆棧,a: 壓棧時(shí)存role,壓完就刪除source
  // $this->checkproperty('mrdb');
  // $this->checkproperty('mrsql');
  // $this->mrsql->select('role, title, parent');
  // $this->mrsql->from($this->mtableuserrole);
  // $this->mrsql->orderby('parent, sequence');
  // $this->mrs = $this->mrdb->execute($this->mrsql->sql());
  // if (0 < count($this->mrs))
  // {
  // $source = & $this->mrs->getarray(); //數(shù)字索引
  // $stack = array(''); //堆棧
  // $stacki = array(-1); //和堆棧對(duì)應(yīng),記錄堆棧中數(shù)據(jù)在樹中的層次
  // $target = array();
  // while (0 < count($stack))
  // {
  // $item = array_shift($stack);
  // $lev = array_shift($stacki);
  // if (!empty($item))
  // {
  // //在這里把加工過的數(shù)據(jù)放到target數(shù)組
  // array_push($target, str_repeat(' ', $lev) . $item);
  // //$s1 = str_repeat(' ', $lev) . $item;
  // }
  // $del = array(); //要從$source中刪除的節(jié)點(diǎn)
  // $ar = array(); //需要添加到堆棧中的節(jié)點(diǎn)
  // foreach ($source as $key=>$val)
  // {
  // //尋找匹配的子節(jié)點(diǎn)
  // if (empty($item))
  // {
  // $find = empty($source[$key]['parent']);
  // }
  // else
  // {
  // $find = ($item == $source[$key]['parent']);
  // }
  // if ($find)
  // {
  // array_unshift($ar, $source[$key]['role']);
  // $del[] = $key;
  // }
  // }
  // foreach ($ar as $val)
  // {
  // array_unshift($stack, $val);
  // array_unshift($stacki, $lev + 1);
  // }
  // foreach ($del as $val)
  // {
  // unset($source[$val]);
  // }
  // echo(implode(', ', $stack) . '<br />' . implode(', ', $stacki) . '<br />' . implode(', ', $target) . '<br /><br />');
  // }
  // debug_array();
  // }
  // else
  // {
  // echo('<center>沒有檢索到數(shù)據(jù)</center>');
  // }
  
  //另外一種顯示方式,用數(shù)組作為堆棧,b: 壓棧時(shí)存數(shù)組索引,出棧并使用完后再刪除source
  $this->checkproperty('mrdb');
  $this->checkproperty('mrsql');
  $this->mrsql->select('role, title, parent');
  $this->mrsql->from($this->mtableuserrole);
  $this->mrsql->orderby('parent, sequence');
  $this->mrs = $this->mrdb->execute($this->mrsql->sql());
  if (!empty($this->mrs) && !$this->mrs->eof)
  {
  $source = & $this->mrs->getarray(); //數(shù)字索引
  $stack = array(-1); //堆棧
  $stacki = array(-1); //和堆棧對(duì)應(yīng),記錄堆棧中數(shù)據(jù)在樹中的層次
  $target = array();
  while (0 < count($stack))
  {
  $item = array_shift($stack);
  $lev = array_shift($stacki);
  if (-1 != $item)
  {
  //在這里把加工過的數(shù)據(jù)放到target數(shù)組
  $s1 = str_repeat(' ', $lev) . '<a href="?action=disp&part=role&role=' . $source[$item]['role'] . '">' . $source[$item]['title'] . '</a>';
  $s2 = '<a href="?action=edit&part=role&role=' . $source[$item]['role'] . '">編輯</a> <a href="?action=delete&part=role&role=' . $source[$item]['role'] . '">刪除</a>';
  array_push($target, array($s1, $s2));
  }
  $del = array(); //要從$source中刪除的節(jié)點(diǎn)
  $ar = array(); //需要添加到堆棧中的節(jié)點(diǎn)
  foreach ($source as $key=>$val)
  {
  //尋找匹配的子節(jié)點(diǎn)
  if (-1 == $item)
  {
  $find = empty($source[$key]['parent']);
  }
  else
  {
  $find = ($source[$item]['role'] == $source[$key]['parent']);
  }
  if ($find)
  {
  array_unshift($ar, $key);
  }
  }
  foreach ($ar as $val)
  {
  array_unshift($stack, $val);
  array_unshift($stacki, $lev + 1);
  }
  //從source中刪除
  unset($source[$item]);
  //echo(implode(', ', $stack) . '<br />' . implode(', ', $stacki) . '<br />' . implode(', ', $target) . '<br /><br />');
  }
  //輸出
  echo('<p align="right"><a href="?action=new&part=role">增加新角色</a>  </p>');
  array_unshift($target, array('角色', '操作'));
  $this->checkproperty('mrlt');
  $this->mrlt->setdata($target);
  $this->mrlt->mlisttitle = '用戶角色列表';
  $this->mrlt->misdispindex = false;
  $this->mrlt->disp();
  }
  else
  {
  echo('<center>沒有檢索到數(shù)據(jù)</center>');
  }
  } // end of function displist
  ?>



發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 91色在线观看 | 91蜜桃视频 | 国产精品视频久久久 | 成人在线视频观看 | 操皮视频 | 麻豆专区一区二区三区四区五区 | 97成人精品视频在线观看 | 成人在线看片网站 | av一区二区在线观看 | 欧美暴操 | 久久精品久久久久 | 国产成人精品在线视频 | 91久久精品日日躁夜夜躁欧美 | 狠狠躁夜夜躁人人爽视频 | 欧美日韩精选 | 免费一二三区 | 久久9视频 | 九色在线观看视频 | 欧美日韩在线免费 | 久国产精品视频 | 国产区福利 | 欧美黄色一区二区 | 久草精品在线观看 | 亚洲欧美在线一区二区 | 欧美综合一区二区 | 五月婷婷色| 亚洲国产午夜 | 91日日 | 国产精品久久久久久久久久妞妞 | av国产精品毛片一区二区小说 | 黄色三级网站 | 国产精品视频看看 | 国产精品96久久久久久久 | 美女视频一区二区三区 | 黄色视屏免费观看 | 午夜男人的天堂 | 欧美激情一区二区三区蜜桃视频 | 色伊人久久 | 爱爱视频在线观看 | 日韩精品一区二区三区在线 | 国产在线观看免费av |