Schönen guten Tag,
nachdem mich mein Problem die letzten Tage stundenlang beschäftigt hat und ich mit den hier vorgeschlagenen Wegen nicht ganz zurechtgekommen bin, habe ich in meinem "mehrdimensionalen Array" pro "Datensatz" ein weiteres "Feld" hinzugefügt, nämlich nochmal die Nummer selbst. Und mit dem von T-Rex vorgeschlagenen Einsatz von foreach ist das, was ich erreichen will, sehr simpel erledigt. Hier mein neuer und funktionierender Code:
// Das "mehrdimensionale Array" wird definiert:
$user = array();
$user['001']['nummer'] = '001';
$user['001']['name'] = 'Hans-Jürgen';
$user['001']['username'] = 'hanj';
$user['001']['pin'] = '3142';
$user['002']['nummer'] = '002';
$user['002']['name'] = 'Verena';
$user['002']['username'] = 'vere';
$user['002']['pin'] = '9441';
$user['003']['nummer'] = '003';
$user['003']['name'] = 'Ingeborg';
$user['003']['username'] = 'ingb';
$user['003']['pin'] = '9678';
// Der Suchausdruck wird definiert:
$search = 'vere';
// Alle Elemente des Arrays '$user' durchlaufen und nach dem Suchausdruck bei 'username' suchen.
// Wenn es zu einem Treffer kommt, die Nummer des Arrayelements, das gerade im Durchlauf ist, festhalten:
foreach ( $user as $data )
{
if ( $search == $data['username'])
{
$nummer = $data['nummer'];
}
}
Also genau das, was ich haben wollte. Danke T-Rex für den Lösungsansatz. Was die Argumente von dedlfix bezüglich des Terminus "mehrdimensionales Array" betrifft, schließe ich mit seth und Fred Furunkelstein an. Ich persönlich finde es völlig überzogen, hier so ins Detail zu gehen. Der Exkurs mag technisch richtig sein, eine Relevanz für mein Problem hatte er nicht.
Ich habe erst jetzt nach der Lösungsfindung gesehen, dass auch bei dedlfix erster Antwort das Stichwort "foreach" gefallen ist. Das ist halt das Problem, wenn ein technisch sehr versierter Informatiker einem Laien etwas in "techniksprech" erklärt. Jemanden, der hier kein Experte ist, sind Satzkonstrukte wie...
Du musst auf alle Fälle durch das äußere Array laufen und die Unterarrays einzeln betrachten. Iterativ mit foreach und in dessen Body ein Vergleich nebst Abbruch bei Übereinstimmung oder funktional mit array_filter() und selbst geschriebener Vergleichsfunktions.
...nämlich leider keine große Hilfe. Ich kann das lesen, so oft ich will, ich verstehe einfach nicht, was mir das sagen soll und was ich danach tun soll. Dass T-Rex einen PHP Code gepostet hat, war da die viel größere Hilfe. Das im Vergleich mit dem Manual und anderen Seiten hat mir nämlich geholfen, nach 3 Tagen die Sache zu verstehen und mein Problem zu lösen.
Ich bedanke mich bei allen, die sich meinem Posting gewidmet haben!
Mit lieben Grüßen
H. Wolowitz
Gut, dann können wir die Zettel von den Laternen nehmen...