データベースからレコードを取得した際、大体は以下のような二次元の連想配列である。
この時、あるキーにおいて指定の値を持つものを抽出したいことがある。
元データ
$array = [
0 => ['id' => 1, 'blood' => 'A', 'name' => 'yamada'],
1 => ['id' => 2, 'blood' => 'B', 'name' => 'tanaka'],
2 => ['id' => 3, 'blood' => 'O', 'name' => 'satake'],
3 => ['id' => 4, 'blood' => 'B', 'name' => 'murata'],
4 => ['id' => 5, 'blood' => 'B', 'name' => 'takeda']
];
例えば、キー blood
の値が B
のものを抽出する場合は以下。1
$new_array = array_filter($array, fn($a) => $a['blood'] === 'B');
print_r($new_array);
結果
Array
(
[0] => Array
(
[id] => 2
[blood] => B
[name] => tanaka
)
[1] => Array
(
[id] => 4
[blood] => B
[name] => murata
)
[2] => Array
(
[id] => 5
[blood] => B
[name] => takeda
)
)
-
コメントにて、より簡潔な記述を教えていただきましたので修正しました。 ↩