3

実行した SQL クエリから生成された配列があります。次のようになります。

$arr[$i]['id'] = $id;
$arr[$i]['name'] = $name;
$arr[$i]['email'] = $email;

メール列から一意の値を取得するにはどうすればよいですか? 助けてくれてありがとう。

4

6 に答える 6

7

MySQL の DISTINCT メソッドを使用して列でフィルター処理するか、次のようなものを使用します

$uniqueEmails = array();
foreach($arr as $array)
{
    if(!in_array($array['email'], $uniqueEmails)
        $uniqueEmails[] = $array['email'];
}
于 2013-01-11T01:30:22.060 に答える
6

PHP 5.5 以降、 array_column()という新しい関数も利用できます。次の方法で使用できます。

$allEmails = array_column($arr, 'email');
$uniqueEmails = array_unique($allEmails);
于 2016-02-01T06:25:52.333 に答える
0

SQL から電子メールでソートされたリストを取得する場合、Gareth のように配列をループすることでパフォーマンスを向上させることができますが、代わりに現在の電子メール アドレスと最後に挿入された電子メール アドレスを比較するだけです。以下は、このコード例です。

$uniqueEmails = array();
$lastemail = '';
foreach($arr as $array)
{
    if($array['email'] != $lastemail)
    {
        $uniqueEmails[] = $array['email'];
        $lastemail = $array['email'];
    }
}
于 2015-03-27T16:22:10.030 に答える