dedlfix: Anzahl der Werte eines Arrays zählen

Beitrag lesen

echo $begrüßung;

Ich habe mal in_array ausprobiert, aber leider hat es mit meiner Version nicht geholfen.

Sowas passiert, wenn du das "mehrdimensionale" Array als ein monolithisches Gebilde betrachtest. Für die Lösungsfindung bei Problemen mit verschachtelten Strukturen ist es günstiger, die Einzelteile getrennt zu bewerten.

PHPs Array-Funktionen sind meist nur auf eine Ebene ausgelegt. Verschachtelte Strukturen sind in der Mehrzahl der Fälle so individuell, dass sich dafür keine allgemeinen Funktionen lohnen. Ein Element eines Arrays unter PHP kann ja sowohl einen skalaren Wert als auch eine weitere Struktur in Form eines Arrays oder Objekts enthalten. Und das auch gemischt. Nicht ohen Grund hat Tom in seinem Lösungsvorschlag eine Prüfung auf Existenz des Elements mit dem Schlüssel nummer eingebaut.

if (isset($val['nummer']) and !is_array($val['nummer']))

Er geht sogar noch einen (halbherzigen) Schritt weiter, indem er das Element noch auf den Typ Array testet (angebrachter fände ich einen Test auf den Typ von "n" - is_numeric() beispielweise, wenn es sich um einen Zahlentyp handelt). Wenn du das Array selbst zusammenbaust und über die Struktur der inneren Elemente kein Zweifel besteht, dann ist diese Prüfung nicht unbedingt notwendig. Nicht weglassen sollte man sie, wenn man das Array aus externen Quellen bekommt und Grund zur Annahme von Unregelmäßigkeiten hat.

Für die Lösungsfindung empfehle ich, das Wort "mehrdimensional" und die damit verbundene Denkweise möglichst zu meiden und dein Augenmerk auf einen iterativen Ansatz mit foreach oder einen funktionalen mit array_reduce() zu legen.

echo "$verabschiedung $name";