Sven Rautenberg: Hash lässt gleichwertige Schlüssel unter den Tisch fallen ?

Beitrag lesen

Aloha!

Nein, vielleicht habe ich mich falsch ausgedrückt, oder du hast es falsch verstanden.

Sicher nicht. :)

Es exisiteren zB 3 Schlüssel-Wert Paare, aber er zeigt mir nur 2 Paare an, weil das eine Schlüssel-Wert Paar genau den selben Schlüsselnamen hat (= 20020720) Wenn ich jetzt $a <=> $b sortiere, wird nur einer der Schlüssel erkannt, und nicht beide, und das ist das Problem. Ich will aber, daß beide erkannt werden.

Wenn du sowas machst:

$termin['20020719']="Hash ausprobieren";
$termin['20020720']="Selfforum besuchen";
$termin['20020720']="Kartoffeln kaufen";

Na, was wird dann passieren? Die dritte Zeile greift auf den _gleichen_ Schlüssel zu wie die zweite Zeile, also wird die dritte Zeile den Inhalt des Termins am 20.7.2002 bestimmen, und nicht die zweite _und_ dritte Zeile gleichzeitig erscheinen.

Es kann immer nur _einen_ Schlüssel gleichen Namens geben. Wäre das nicht der Fall: Wie soll man dann einerseits bestehende Werte ändern können, und andererseite: Welcher Termin wäre denn gemeint, wenn ich mit echo $termin['20020720']; wissen will, was heute zu tun ist?

Das, was du willst, läßt sich mit mehreren eindimensionalen oder einem mehrdimensionalen Array lösen:

$termin[23]['aktion']="Selfforum besuchen";
$termin[23]['datum']="20020720";

$termin[24]['aktion']="Kartoffeln kaufen";
$termin[24]['datum']="20020720";

Wenn du dieses Array sortieren willst, nimm array_multisort(). Eventuell ist es dazu zwingend notwendig, den Index umzudrehen:

$termin['aktion'][23]...
$termin['datum'][23]...

Du kannst aber genauso mit zwei Arrays arbeiten, das macht absolut keinen Unterschied:
$datum[23]=...
$aktion[23]=...

- Sven Rautenberg