======[PHP] Einfache Hashtable====== So auf die Schnelle eine Hashtable nachgebildet Zuerst eine abstrakte Hashtable, die so wiederverwendbar ist > 2-Dimensionales Array */ public function __construct($input){ foreach($input as $array){ $this->append($array); } } /** * @abstract * @param Array Array mit den Werten die für den Key verwendet werden */ abstract protected function getHashKey($array); /** * @abstract * @param Array Eingabe-Array */ abstract protected function getValueFromArray($array); /** * Ein Array als Wert der Hashtable hinzufügen * @param Array Array mit allen Werten */ public function append($array){ $hashkey = $this->getHashKey($array); $value = $this->getValueFromArray($array); parent::offsetset($hashkey, $value); } } ?> Daraus leiten wir eine für diesen Fall speziefische Hashtable ab $name, 'typ' => $typ); $hashkey = $this->getHashKey($keys); return parent::offsetGet($hashkey); } /** * @overwrite * @param Array('name'=>, 'typ'=>) */ protected function getHashKey($array){ return $array['name'].'#'.$array['typ']; } /** * @overwrite * @param Array */ protected function getValueFromArray($array){ return $array['value']; } }?> Und so kann man das Ding dann anwenden //Testdaten $array[] = array('name' => '123', 'typ' => 'A', 'value' => 'abc'); $array[] = array('name' => '456', 'typ' => 'A', 'value' => 'def'); $array[] = array('name' => '789', 'typ' => 'B', 'value' => 'ghi'); //Hashtable anlegen $hashTable = new MyHashTable($array); //Wert aus Hashtable laden. In diesem Fall sollte 'def' rauskommen echo $hashTable->get('456','A');