ホームページ > バックエンド開発 > PHPチュートリアル > PHP はツリー構造のレベルレス分類を実装します_PHP チュートリアル

PHP はツリー構造のレベルレス分類を実装します_PHP チュートリアル

WBOY
リリース: 2016-07-13 16:58:27
オリジナル
1047 人が閲覧しました

ツリー構造を実装する2つの方法
1.再帰的メソッド
再帰とは、関数がそれ自体を明示的に呼び出すことです。
再帰的手法を用いてツリー構造を実現する場合の特徴として、データの書き込み速度は速くなりますが、表示速度は遅くなります(特にツリーの分岐数やレベルが多い場合に顕著です)。書き込むデータ量が多く、ツリー構造が複雑な場合に適しています。
データ構造 (mysql を例にします)

コード: - - - - - - - - - - - - - - - - - - - - - - - - --------------------------------
テーブル `tree1` を作成します (
`id` tinyint(3) unsigned NOT NULL auto_increment,
`parentid` tinyint(3) unsigned NOT NULL デフォルト '0'、
`topic` varchar(50) デフォルト NULL,
主キー (`id`)、
KEY `parentid` (`parentid`)
) TYPE=MyISAM;

`tree1` (`id`、`parentid`、`topic`) の値に挿入します
(1,0,'ツリー 1'),
(2,0,'tree2'),
(3,0,'ツリー 3')、
(4,2,'ツリー 2-1')、
(5,4,'ツリー 2-1-1')、
(6,2,'ツリー 2-2')、
(7,1,'ツリー 1-1')、
(8,1,'ツリー 1-2'),
(9,1,'ツリー 1-3'),
(10,8,'ツリー 1-2-1')、
(11,7,'ツリー 1-1-1'),
(12,11,'ツリー 1-1-1-1');
-------------------------------------------------- ----------------------------------


フィールドの説明
id、記録されたID番号
parentid、レコードの親レコードID (0の場合、ルートレコードです)
トピック、レコードの表示タイトル

番組番組

シーケンスツリー:

PHP コード:---------------------------------------------- ----------------------------------

/* データベース接続 */
mysql_connect();
mysql_select_db('ツリー');

/* 再帰関数をツリー形式で表示 */
関数ツリー($parentid = 0) {
/* SQL クエリを実行してレコードのタイトルと ID を取得します*/
$sql = "tree1 からトピック、id を選択します。ここで、parentid = $parentid は ID asc 順に並べられます";
$rs = mysql_query($sql);
/* インデント*/
echo("

    ");
    while($ra = mysql_fetch_row($rs)) {
    /* レコードのタイトルを表示 */
    echo('
  • '.$ra[0].'
  • ');
    /* 再帰呼び出し */
    ツリー($ra[1]);
    }
    echo("
");
}
木();
?>

-------------------------------------------------- ----------------------------------


逆順ツリー:

PHP コード:---------------------------------------------- ----------------------------------

/* データベース接続 */
mysql_connect();
mysql_select_db('ツリー');

/* 再帰関数をツリー形式で表示 */
関数ツリー($parentid = 0) {
/* SQL クエリを実行してレコードのタイトルと ID を取得します*/
$sql = "ツリー 1 からトピック、ID を選択します (親 ID = $parentid ID の説明で並べ替えます)";
$rs = mysql_query($sql);
/* インデント */
echo("
    ");
    while($ra = mysql_fetch_row($rs)) {
    /* レコードのタイトルを表示 */
    echo('
  • '.$ra[0].'
  • ');
    /* 再帰呼び出し */
    ツリー($ra[1]);
    }
    echo("
");
}
木();
?>

-------------------------------------------------- ----------------------------------


データプログラムを挿入します

PHP コード:---------------------------------------------- ----------------------------------

/* データベース接続 */
mysql_connect();
mysql_select_db('ツリー');
$sql = "ツリー (トピック,親 ID) に挿入 value('ツリー 3-1',3);";
mysql_query($sql);
?>

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/631398.html技術記事ツリー構造を実装する 2 つの方法 1.再帰的メソッド 再帰とは、関数内でそれ自体を明示的に呼び出すことを指します。 再帰的手法を用いてツリー構造を実現する特徴は、データの書き込み速度と表示速度が速いことです...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート