仅从阵列打印一次值

时间:2014-02-11 17:14:37

标签: php mysql printing unique distinct

我想使用if语句,当它与数据库中的字符串匹配时,会打印出一条消息。但是,在数据库中,如果有多个字符串计数,则会多次打印出来。有谁知道如何确保它只打印一次?非常感谢。我的代码是:

    if ($value == 'America') 
    {
    echo "Welcome";
    }

4 个答案:

答案 0 :(得分:2)

根据您提供的信息,一个解决方案是:

welcome_displayed = false;
if (welcome_displayed and $value == 'America') 
{
    echo "Welcome";
    welcome_displayed = true;
}

答案 1 :(得分:0)

我假设你在循环中。如果是这样,我会使用break构造:

<?php

$array = array('red', 'blue', 'yellow');

foreach ($array as $color) {
  if ($color == 'blue') {
    print "We found a match.";
    break;
  }
}

如果您只是尝试编写仅获得1个匹配项的查询,请使用DISTINCT关键字或LIMIT结果数量,或类似的结果。如果您更新了问题,我可以相应地更新我的答案。

答案 2 :(得分:0)

您还可以将任何匹配组合到一个数组中,然后使用'array_unique'来获取不同的项目。

// DEFAULTS 
$matched_items = array();
$values = array('Denver', 'ABQ', '1234', 'asdfa', 'America', 'osproqr', 'America', 'iowrenvoiw', 'America');

// LOOP THROUGH EACH VALUE AND COMPARE IT AGAINST THE NEEDLE
foreach ($values AS $value) {
    if ($value == 'America') {
        $matched_items[] = $value;
    }
}

// PRINT OUT ONLY THE UNIQUE ITEMS
print_r(array_unique($matched_items));

答案 3 :(得分:-1)

对要选择的列使用SELECT DISTINCT。

sql="SELECT DISTINCT /*table column*/ FROM /*TABLE NAME*/ WHERE /*column name*/ = America "

这将只选择列中的一行= America。