Eine Hash-Tabelle ist eine effiziente Datenstruktur, die schnelle Suchvorgänge ermöglicht, indem Daten in Arrays fester Größe („Buckets“) zugeordnet werden, wobei jeder Bucket Daten mit demselben Schlüssel enthält. Hash-Tabellen in PHP verwenden eine Hash-Funktion, um Daten beliebiger Größe in eine Ganzzahl fester Länge umzuwandeln, die zur Berechnung der Buckets der Daten in der Hash-Tabelle verwendet wird.
PHP-Datenstruktur: Implementierungsprinzip der Hash-Tabelle, entdecken Sie das Geheimnis der schnellen Datensuche
Einführung
Hash-Tabelle (Hash-Tabelle) ist eine effiziente Datenstruktur für die schnelle Datensuche. Es ermöglicht schnelle Suchvorgänge, indem es Daten in einem Array fester Größe, einem „Bucket“, abbildet. Jeder Bucket enthält Daten mit demselben Schlüssel.
Implementierungsprinzip
Das Implementierungsprinzip der Hash-Tabelle in PHP basiert auf der Hash-Funktion. Eine Hash-Funktion wandelt Daten beliebiger Größe in eine Ganzzahl fester Länge um. Diese Ganzzahl wird verwendet, um den Bucket zu berechnen, in den die Daten in die Hash-Tabelle eingefügt werden.
Code-Implementierung: Benutzerdefinierte Hash-Tabelle
Das Folgende ist ein Beispielcode zum Implementieren einer Hash-Tabelle in PHP:
class HashTable { private $buckets = []; private $size = 0; public function __construct($size) { $this->size = $size; } public function hash(string $key): int { return crc32($key) % $this->size; } public function set(string $key, $value): void { $index = $this->hash($key); $this->buckets[$index][$key] = $value; } public function get(string $key): mixed { $index = $this->hash($key); if (isset($this->buckets[$index][$key])) { return $this->buckets[$index][$key]; } else { return null; } } }
Praktischer Fall: Gruppieren von Mitarbeitern nach Alter
Angenommen, wir haben ein Array, das das Alter der Mitarbeiter enthält und wir wollen Konzernmitarbeiter nach Alter. Mithilfe einer Hash-Tabelle können wir schnell Mitarbeiter gleichen Alters finden.
$ages = [25, 30, 28, 35, 32, 25, 30]; $hashTable = new HashTable(count($ages)); foreach ($ages as $age) { $hashTable->set($age, []); } foreach ($ages as $age) { $hashTable->get($age)[] = $age; } var_dump($hashTable->buckets);
Ausgabeergebnis:
array( 25 => array(25, 25), 30 => array(30, 30), 28 => array(28), 35 => array(35), 32 => array(32) )
Das obige ist der detaillierte Inhalt vonPHP-Datenstruktur: Implementierungsprinzip der Hash-Tabelle, entdecken Sie das Geheimnis der schnellen Datensuche. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!