ホームページ > バックエンド開発 > PHPチュートリアル > 最上位の分類 ID を取得するための PHP 無制限の分類

最上位の分類 ID を取得するための PHP 無制限の分類

WBOY
リリース: 2016-07-29 08:58:48
オリジナル
1732 人が閲覧しました

このようなテーブルがあり、idはカテゴリのID、nameはカテゴリの名前、pidは上位カテゴリのIDです。

ここでカテゴリ ID があり、プログラムはその上位の上位の上位を見つける必要があります...カテゴリの ID は、簡単に言えば、最上位のカテゴリの ID を見つけることです。
たとえば、「フレッシュフルーツ」のIDは13、対応する親カテゴリIDは5、5の親IDは1です。1は親カテゴリを持たず、これが最上位カテゴリになります。

昔、私が若くて無知だった頃、私は常に再帰を使用して検索し、結果をキャッシュしてパフォーマンスの問題を解決することを考えていました。
その後、テーブル全体をキャッシュして再帰的に検索してみました。
後で...無限分類に遭遇する可能性は低いようです...

最近、同僚がこの問題を「エレガントに」解決する方法を私に尋ねました。
そこで私はアイデアを思いつき、次の解決策を思いつきました:

<&#63;php
$sql = "select id, pid from tablename ";
// 查询后 将结果处理成 如下数组格式
$arr = [
  // id => pid
  1 => 0,
  // 省略...
  5 => 1,
  // 省略...
  13 => 5
];
// 建议将这数组缓存起来

$id = 13;
while($arr[$id]) {
  $id = $arr[$id];
}
echo $id; // 1

ログイン後にコピー

言わざるを得ません:とてもエレガントです!私自身も感心しましたし、同僚たちも地に伏して号泣しました。
ループ、判定、再帰のコードを数十行書いていたので、2行のコードに置き換えました...

上記は、トップ分類 ID を取得するための PHP 無制限分類を内容も含めて紹介しました。PHP チュートリアルに興味のある友人の参考になれば幸いです。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート