ターゲットの多次元配列
- 例えば下記のような内容の多次元配列をターゲットにする
array:3 [▼
1 => array:3 [▼
"name" => "田中さん"
"email" => "tanaka@test.com"
]
2 => array:3 [▼
"name" => "山田さん"
"email" => "yamada@test.com"
]
3 => array:3 [▼
"name" => "近藤さん"
"email" => "kondo@test.com"
]
]
まずはこれの、メールアドレスだけ抜き出して配列にしてみる
array_column関数を使う
- サンプルコード
// 対象の多次元配列
$users = [
['name' => '田中さん', 'email' => 'tanaka@test.com'],
['name' => '山田さん', 'email' => 'yamada@test.com'],
['name' => '近藤さん', 'email' => 'kondo@test.com'],
];
// ⭐️ emailだけの配列を生成
$emails = array_column($users, 'email');
// 出力してみる
var_dump(array_column($csvArray, 'email'));
- 結果
array:3 [▼
0 => "tanaka@test.com"
1 => "yamada@test.com"
2 => "kondo@test.com"
]
メールアドレスだけの配列できた
keyで抽出した配列のユニークチェックをしてみる
続いて本題、上記配列を使って重複チェックをしてみる
- サンプルコード
$emails = array_column($users, 'email');
$uniqueArray = array_unique($emails);
if (count($uniqueArray) !== count($emails)) {
echo '重複している値があります!';
}
PHPにて、ユーザー情報が入った多次元配列から
メールアドレスの重複チェックを行いたい時にいろいろした時のメモ