2016-10-12 19 views
1

重複したエントリを削除するには、array_unique()を使用する必要がありますが、残念なことにこれを使用すると予期しない結果が発生します。アレイから重複したエントリを削除する

$query = $db->query(" 
SELECT sid,father_contact,residential_contact 
FROM ".TABLE_PREFIX."student_list 
{$where_clause} 
ORDER BY sid ASC"); 
while ($s = $db->fetch_array($query)) 
{ 
    if (!empty($s['father_contact'])) 
    { 
     $father_contact = $s['father_contact'].', '; 
    } 
    else 
    { 
     $father_contact = ''; 
    } 

    if (!empty($s['residential_contact'])) 
    { 
     $residential_contact = $s['residential_contact'].', '; 
    } 
    else 
    { 
     $residential_contact = ''; 
    } 

    $phone_nums_bit .= $father_contact.$residential_contact; 
} 

これは、データベーステーブルからすべての電話番号をつかみ、このような結果印刷:03134237002のようないくつかの数字が三度繰り返していることを

03334523675, 03124237009, 03134237002, 03124237009, 03217832173, 03134237002, 3134237002, 03124237009, 

はお知らせ私のPHPコードはこれです。私はこの結果から重複したエントリを削除したいと思います。私はそれを整理するのを手伝ってください。ありがとう。

+1

'SELECT DISTINCT' –

+0

@JayBlanchard::ちょうどあなたのアイデアを与えるために、あまりにもしようとしましたが、残念ながらそれは助けていません。 –

+0

予期せぬ結果が出ると言うとき。正確にどのような結果が得られますか?あなたのコードのどこにでも 'array_unique()'は表示されません –

答えて

1

あなたは配列構造を使ってそれを試みることができます。

$phones = []; 
while ($s = $db->fetch_array($query)) 
{ 
    if (!empty($s['father_contact'])) 
    { 
     $phones[] = $s['father_contact']; 
    } 

    if (!empty($s['residential_contact'])) 
    { 
     $phones[] = $s['residential_contact']; 
    } 
} 
$phones = array_unique($phones); 
// and then combine into string 
$phone_nums_bit = implode(', ', $phones); 
+0

ありがとうございます@ゆりTkachenko。出来た。 –

関連する問題