Suche in mehrdimensionalen Arrays

blumshuett

Mitglied
Hallo zusammen,

folgenden Problem:
über eine MYSQL Abfrage füll ich ein Array:
Code:
 echo "<td>".$matrix_title[$i]['ID'] = mysql_result($res_title, $i, "ID")."</td>";
 echo "<td>".$matrix_title[$i]['benutzername'] = mysql_result($res_title, $i, "benutzername")."</td>";
 echo "<td>".$matrix_title[$i]['datum'] = mysql_result($res_title, $i, "datum")."</td>";
 echo "<td>".$matrix_title[$i]['begruendung'] = mysql_result($res_title, $i, "begruendung")."</td>";
Nun möchte ich in dem Array nach einem Benutzernamen suchen,
bei eindimensionalen Array klappt das auch, aber bei
Code:
$key = array_search('trallala', $matrix_title['benutzername']);
bekomm ich folgenden Fehler:
array_search(): Wrong datatype for second argument

Wer kennt sich mit dem array_search aus, Suche im Forum / selfphp hat leider nichts gebracht...

1000 Dank

blumshuett
 
Nach Deinem Code enthält $matrix_title kein Element mit dem Index 'benutzername', sondern nur numerische Indizes.

[phpf]array_search[/phpf] ist IMHO nicht für das Durchsuchen mehrdimensionaler Arrays geeignet, erst recht nicht, wenn Du nur ein bestimmtes Element zweiter Ebene prüfen willst.

Warum machst Du diese Einschränkung nicht im Query, wenn Du die Daten ohnehin aus einer Datenbank beziehst?

Wenn es zwingend in PHP sein soll (was ich nicht nachvollziehen kann), wirst Du eine eigene Funktion schreiben müssen oder bereits in der einlesenden Schleife den Benutzernamen prüfen müssen.

Gruß hpvw
 
Du weißt das Array doch so zu:
PHP:
echo "<td>".$matrix_title[$i]['ID'] = mysql_result($res_title, $i, "ID")."</td>";
So rufst du es ab
PHP:
$key = array_search('trallala', $matrix_title['benutzername']);

Fällt dir denn nicht etwas auf?

Müsste es nicht so heißen?
PHP:
$key = array_search('trallala', $matrix_title[$i]['benutzername']);
 
Zurück