ホームページ >バックエンド開発 >PHPチュートリアル >PHP データ構造: 高速クエリをマイニングするための強力なツール、ハッシュ テーブルの秘密
ハッシュ テーブルは、ハッシュ関数を通じてキーを配列内のインデックスにマップする効率的なデータ構造であり、高速なデータの保存と取得を可能にします。実際の戦闘では、単語の出現回数を効率的にカウントするために使用できます。 ① ハッシュ テーブルを使用して各単語をカウンターにマッピングします。 ② 単語が出現したときに、キーがハッシュ テーブルに存在するかどうかを確認します。ない場合は追加してカウントを 1 に設定します。④ がある場合はカウントに 1 を追加します。
PHP データ構造: ハッシュ テーブルの秘密
ハッシュ テーブルの概要
ハッシュ テーブルは、データの保存と迅速な取得に使用される効率的なデータ構造です。キーを値にマッピングし、ハッシュ関数を使用してキーを配列で使用できるインデックスに変換します。
ハッシュ関数
ハッシュ関数は、キーをインデックスに変換する魔法の公式です。理想的なハッシュ関数は次のとおりです:
実践例: Word Counter
テキスト ファイルがあり、各単語が出現する回数をカウントする必要があるとします。素朴な解決策は、配列を使用して単語とそのカウントを保存することですが、単語の数が増えると、カウントの検索と更新の効率が低下します。
ハッシュ テーブルを使用すると、各単語をカウンターにマッピングし、その単語をキーとして直接使用できます。単語に遭遇したら、そのキーがハッシュ テーブルに存在するかどうかをすぐに確認でき、存在しない場合はキーを追加してそのカウントを 1 に設定します。そうであれば、カウントに 1 を加えます。
class WordCounter { private $words = []; public function countWords($text) { $words = explode(' ', $text); foreach ($words as $word) { if (isset($this->words[$word])) { $this->words[$word]++; } else { $this->words[$word] = 1; } } } public function getWordCount($word) { return $this->words[$word] ?? 0; } }
この例では、$words
数组充当哈希表,键是单词,值是计数。函数countWords()
高效地计算每个单词的计数,而函数getWordCount()
を使用して特定の単語の数をすばやく取得できます。
以上がPHP データ構造: 高速クエリをマイニングするための強力なツール、ハッシュ テーブルの秘密の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。