ホームページ  >  記事  >  バックエンド開発  >  PHP で無段階再帰分類を実装するための 2 つの方法とテクニック

PHP で無段階再帰分類を実装するための 2 つの方法とテクニック

黄舟
黄舟オリジナル
2017-03-04 11:28:131559ブラウズ

この記事では主に、PHP で無段階再帰分類を実装する 2 つの方法を紹介します。これは、参考価値があります。エディターで見てみましょう

早速、コードを見てください:

/**
* 无级递归分类 TP框架
* @param int $assortPid 要查询分类的父级id
* @param mixed $tag  上下级分类之间的分隔符
* @return string $tree 返回的分类树型结构结果 
*
*/
function recursiveAssort($assortPid, $tag = '')
{ 
 $assort = M('goods_class')->where("class_pid = $assortPid")->field('class_id, class_name')->select();
 foreach ($assort as $value) {
 $tree .= &#39;<option value="&#39; . $value[&#39;class_id&#39;] . &#39;">&#39; . $tag . $value[&#39;class_name&#39;] . &#39;</option>&#39;;
 $tree .= recursiveAssort($value[&#39;class_id&#39;], $tag . &#39; &#39;);
 }
 return $tree;
}

/**
 * 利用php的引用传递 CI框架
 *
 */
 public function get_access()
 {
 $access = array();
 $field = &#39;id, pid, method, name, description&#39;;
 $q_access = $this->db->select($field)->get(&#39;access&#39;);
 $q_result = $q_access->result_array();
 if (!empty($q_result)) {
  $items = array();
  foreach ($q_result as $value) {
  $items[$value[&#39;id&#39;]] = $value;
  }
  foreach ($items as $key => $item) {
  if ($item[&#39;pid&#39;] == 0) {
   $access[] = &$items[$key];
  } else {
   $items[$item[&#39;pid&#39;]][&#39;sub_access&#39;][] = &$items[$key];
  }
  }
 }
 return $access;
 }

上記は、PHP で無段階再帰分類を実装するための 2 つの方法とテクニックであり、より関連したものです。 PHP 中国語 Web サイト (www.php.cn) のコンテンツに注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。