二次元配列から該当する要素が存在するかどうかを確認する処理をどのように実装したかを簡単に忘備録としてまとめました。
PHPではin_array
メソッドを使います。
実務ではよく出てくるメソッドなので、覚えておいて損はないでしょう。
サンプルとして以下のコードを用意しました。
<?php
// 二次元配列の定義
$data = [
['id' => 1, 'name' => 'Alice'],
['id' => 2, 'name' => 'Bob'],
['id' => 3, 'name' => 'Charlie'],
];
// 調べたい値
$searchName = 'Bob';
$found = false;
// 二次元配列をループして in_array() で検索
foreach ($data as $row) {
if (in_array($searchName, $row)) {
$found = true;
break;
}
}
if ($found) {
echo "{$searchName} は見つかりました。\n";
} else {
echo "{$searchName} は見つかりませんでした。\n";
}
特定のカラムを検索する方法は以下の通りです。
<?php
// 二次元配列
$data = [
['id' => 1, 'name' => 'Alice'],
['id' => 2, 'name' => 'Bob'],
['id' => 3, 'name' => 'Charlie'],
];
// 検索したい名前
$searchName = 'Bob';
// 特定のカラム(name)のみを抜き出す
$names = array_column($data, 'name');
// in_array で検索
if (in_array($searchName, $names)) {
echo "{$searchName} は見つかりました。\n";
} else {
echo "{$searchName} は見つかりませんでした。\n";
}
in_array
メソッドはよく使うメソッドなので、忘備録としてまとめました。