下記のような多次元配列があります。
PHP
1$arrays = [ 2 0 => [ 3 'エリアID' => 1, 4 '名前' => 'Tanaka', 5 '建物種別' => 2, 6 ], 7 1 => [ 8 'エリアID' => 1, 9 '名前' => 'Yamada', 10 '建物種別' => 3, 11 ], 12 2 => [ 13 'エリアID' => 1, 14 '名前' => 'Satou', 15 '建物種別' => 4, 16 ], 17 3 => [ 18 'エリアID' => 2, 19 '名前' => 'Hayashi', 20 '建物種別' => 1, 21 ], 22 4 => [ 23 'エリアID' => 2, 24 '名前' => 'Hasegawa, 25 '建物種別' => 2, 26 ], 27];
こちらの多次元配列から、エリアIDが1で、建物種別が3の、名前を取得したいと思っています。
私が試してみたコードは下記になります。
PHP
1//まず、array_columnとarray_keysを使って、エリアIDが1の配列のキーリストを取得 2$key_list = array_keys( array_column( $arrays, 'エリアID'), 1); 3 4//キーリストをループで回し、エリアIDが1の多次元配列を新たに作成 5$new_arrays = array(); 6foreach($key_list as $key){ 7 $new_arrays[] = $arrays[$key]; 8} 9 10// 11$key = array_search( 3, array_column( $new_arrays, '建物種別')); 12print_r($new_arrays[$key]); 13//Yamada
何かもっとコードが短くなる良い方法はありますでしょうか。
例えばこの関数使えば1発みたいなのがあればご教示いただきたいです。
宜しくお願いいたします。

回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/05/26 09:34
2022/05/26 09:40