Ich suche gerade die sinnvollste Methode eine val in einem Multi-array zu finden.
Ich hab bis jetzt immer foreach genutzt, will aber irgentwie davon weg =)
Hier mal ein Bsp:
PHP
$server_data['players'][0]['ID'] = 1;
$server_data['players'][0]['game'] = 'bf3';
$server_data['players'][0]['nickname'] = 'cottton';
$server_data['players'][1]['ID'] = 123;
$server_data['players'][1]['game'] = 'bf3';
$server_data['players'][1]['nickname'] = 'cottton';
$server_data['players'][2]['ID'] = 2323;
$server_data['players'][2]['game'] = 'moh';
$server_data['players'][2]['nickname'] = 'cypher';
$server_data['players'][3]['ID'] = 13121;
$server_data['players'][3]['game'] = 'bc2';
$server_data['players'][3]['nickname'] = 'ownitsch';
$player = 'cottton'; // searched nickname
echo '<br />in_array: ';
if(in_array($player,$server_data['players'])){
echo 'true';
}else{
echo 'false';
}
echo '<br />foreach: ';
foreach($server_data['players'] as $key => $arr){
if($arr['nickname'] == $player){
echo 'found';
break;
}
}
echo "<pre>";print_r($server_data);echo "</pre>";
Alles anzeigen
in_array funktioniert nicht.
Ich suche auch schon bei php.net.
Aber evtl weiß ja jemand auf Anhieb eine Funktion.
EDIT:
array_walk_recursive, läuft aber komplett durch. Also ein break oder continue funktionier nicht =/
PHP
echo '<br />array_walk_recursive: ';
array_walk_recursive($server_data,
function ($item, $key, $player){
if($player == $item){
//echo "$key => $item<br />";
echo 'true ';
}
}
, $player);
Was nutzt ihr?