実行した SQL クエリから生成された配列があります。次のようになります。
$arr[$i]['id'] = $id;
$arr[$i]['name'] = $name;
$arr[$i]['email'] = $email;
メール列から一意の値を取得するにはどうすればよいですか? 助けてくれてありがとう。
MySQL の DISTINCT メソッドを使用して列でフィルター処理するか、次のようなものを使用します
$uniqueEmails = array();
foreach($arr as $array)
{
if(!in_array($array['email'], $uniqueEmails)
$uniqueEmails[] = $array['email'];
}
PHP 5.5 以降、 array_column()という新しい関数も利用できます。次の方法で使用できます。
$allEmails = array_column($arr, 'email');
$uniqueEmails = array_unique($allEmails);
SQL から電子メールでソートされたリストを取得する場合、Gareth のように配列をループすることでパフォーマンスを向上させることができますが、代わりに現在の電子メール アドレスと最後に挿入された電子メール アドレスを比較するだけです。以下は、このコード例です。
$uniqueEmails = array();
$lastemail = '';
foreach($arr as $array)
{
if($array['email'] != $lastemail)
{
$uniqueEmails[] = $array['email'];
$lastemail = $array['email'];
}
}