Mailinglisten-Archive |
Hi, On Wed, Feb 09, 2000 at 04:51:33PM +0100, Oliver Kummerow wrote: > kann man PHP beibringen, in assoziativen Arrays Doubletten zuzulassen? > So dass > $arr["erster"]= "einezuweisung"; > $arr["erster"]= "nocheinezuweisung"; > > auch zu count ($arr ) == 2 führt, d.h. beide Zuweisungen erhalten > bleiben? nein. Das geht nicht nicht. Wie denn auch? ;) Aber natuerlich kann man trotzdem die gewuenschte Funktionalitaet erreichen. Simpel-Beispiel: (quick and dirty hack without styles and guaranteed non tested ;) class Hash { var $storage = array(); function put( $key, $value ){ if ( $this->storage[ $key ] ){ // hash-basket ist schon angelegt, also // einfach ein Element mehr in den Korb ... $this->storage[ $key ][] = $value; } else { // hash-basket noch nicht da, // ... also machen wir einen huebschen Korb // und legen den ersten Wert rein $this->storage[ $key ] = array( $value ); } } function get( $key ){ if ( $this->storage[ $key ] ){ $value = $this->storage[ $key ]; if ( count( $value ) == 1 ){ // wir sind mal nett und reichen fuer // den Einzelfall auch gleich das einzelne // Element raus return reset( $value ); } else { // ansonsten liefern wir eine Kopie des // ganzen Korbes return $v; } } else { // oh' der Korb ist leer, ... return false; } } } Ergaenzung der Schnittstelle um weitere sinnvolle Funktionen bleiben dem geneigten Leser als Uebungsaufgabe ;) ... alle Angaben ohne Gewehr, ... oder so. -Andreas -- : Anti-Spam Petition: http://www.politik-digital.de/spam/ : : PGP-Key: http://www.tse-online.de/~ab/public-key : : Key fingerprint: 12 13 EF BC 22 DD F4 B6 3C 25 C9 06 DC D3 45 9B :
php::bar PHP Wiki - Listenarchive