Ich würde das universeller gestalten und in eine Funktion kapseln wollen.
Vorteile:
- geht für arrays mit beliebiger verschachtelung (oder 'Dimensionen' - den Begriff gebrauche ich auch um es Anfängern anschaulich zu machen)
- Kapselung der verwendeten Variablen
- Wieder verwendbar.
<?php
// Testdaten
$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';
// Aufruf mit IsInArray($search, $haystack);
if (IsInArray('vere', $user)) { // Funktionsaufruf
print "gefunden\n";
} else {
print "NICHT gefunden\n";
}
// als Funktion gekapselt
function IsInArray($search, $haystack) {
$bol=false;
foreach (array_keys($haystack) as $k) {
if (is_array($haystack[$k])) { // wenn array, dann:
$bol=IsInArray($search, $haystack[$k]); // rekursiver Funktionsaufruf
} elseif ( $haystack[$k] == $search ) {
$bol=true;
}
if ($bol) { return $bol; }
}
return false;
}
?>