1次元の連想配列を検索する場合は、array_search()関数を使って値を検索し、その値を持つキーを返してくれます。
このように使います。
// 検索対象の連想配列 $dataArray = array('apple'=>'赤','banana'=>'黄','chocolate'=>'茶'); // 「黄」を検索 // キーの名前はbananaです。と表示されます。 $ret = array_search('黄', $dataArray); if ($ret != false) { echo 'キーの名前は'.$ret.'です。'; } else { echo 'キーは見つかりませんでした。'; }
2次元の連想配列の場合は?
ではは2次元の場合はどうやって検索すればいいのか?という内容です。関数で簡単というのは残念ながらありません。地道にやることになります。
連想配列なので、foreachを使ってループを回すのが良いでしょう。
// 検索対象の連想配列(多次元配列) $dataArray[] = array('name'=>'りんご','price'=>'98'); $dataArray[] = array('name'=>'バナナ','price'=>'115'); // バナナを検索 // 2次元配列から1次元の連想配列を1つずつ取り出して検索 foreach($dataArray as $data) { if ($data['name'] === 'バナナ') { echo $data['name'].'の価格は'.$data['price'].'です。'; } }
本日は以上です。