Tom: Position eines Elements im array ermitteln

Beitrag lesen

Hello,

Meiner Meinung nach steht der Schlüssel "mrz" an der "Position" (wenn man das überhaupt so nennen kann) "mrz". Das mag nicht hilfreich sein, aber so sagt es mir mein Verständnis von assoziativen Arrays. Wer einen Zähler haben will, soll ihn in das Array einfügen.

Das kann man so nicht vereinfachen. Bei PHP-Arrays handelt es sich nicht um geschlossene Speicherbereiche, in denen brav ein Element eines Typs an an seinen Vorgänger gleichen Typs geklebt wird, sondern um Listen und wenn sie denn "mehrdimensional" werden, um Bäume (= geschachtelte Listen).

In einer verkettenen Liste (so stellet sich das dem Anwendungsprogrammierer dar, wie es hintenrum wirklich aussieht, geht uns hier nichts an) gibt es einen Anfang und ein Ende. Die Elemente innerhalb der Kette haben je einen Vorgänger und einen Nachfolger, natürlich mit Ausnahme der beiden Ränder...

Welchen Wert jedes Element trägt, ist vollkommen wurscht. Welchen Index jedes Element trägt, ist auch wurscht, mit der einzigen Bedingung: er darf in der Kette nicht doppelt vorkommen. Da wir aber nicht direkt auf die Knoten zugreifen können, sondern nur über von PHP bereitgestellte Funktionen auf die zugehörigen Elemente, können wir davon ausgehen, dass PHP sich darum kümmert.

Die Reihenfolge der Indexe in einem solchen "eindimensionalen Array" kann also vollkommen wirr sein, anders als es bei einem typenreinen "echten" Array (Assembler oder Compilersprache) der Fall ist. Dort ist der Index immer direkt proportioanl zum Displacement des Elements innerhalb des Arrays.

Es ist also durchaus relevant, danach zu fragen, an welcher Position ein Element innerhalb eines Arrays steht. Schließlich richtet sich auch die Abarbeitungsreihenfolge von foreach() und anderen zeigerbasierten Arrayfunktionen danach.

Liebe Grüße aus dem schönen Oberharz

Tom vom Berg

--
Nur selber lernen macht schlau
http://bergpost.annerschbarrich.de