从数组

时间:2016-10-12 20:30:53

标签: php

为了删除重复的条目我知道我必须使用array_unique()但不幸的是,通过使用它,我得到了意想不到的结果。我的PHP代码是这样的:

    $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;
}

这会从数据库表中获取所有电话号码并打印结果如下:

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

请注意,像03134237002这样的数字很少重复三次。我想从此结果中删除重复的条目。请帮我解决一下。感谢。

1 个答案:

答案 0 :(得分: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);
相关问题