只有在尚未回应时才回显?

时间:2013-03-30 00:22:45

标签: php arrays

我要做的是从表单中创建条目列表,但如果在表单中输入多次,我不希望在列表中多次显示相同的条目。例如,假设一个人输入“1”但随后两个人输入“2”,我只希望2在列表中出现一次。我可以使用什么功能?

3 个答案:

答案 0 :(得分:2)

最好的方法是将所有条目存储在一个数组(基本数字索引数组)中,然后删除重复项

uniqueEntries = array_unique($yourEntries);

文档:array_unique

代码示例:

$entries = array();
$entries[] = 1;
$entries[] = 1;
$entries[] = 2;

$entries = array_unique($entries);

print_r($entries);

将输出:

Array
(
    [0] => 1
    [2] => 2
)

答案 1 :(得分:1)

在这种情况下,您应该使用PHP Arrays。数组是二维表。

/* Array
 * key => value
 * @key personID
 * @value optionValue
 */
$array = array(
    1 => 1, // Person 1 chose Option 1
    2 => 2, // Person 2 chose Option 2
    3 => 2  // Person 3 chose Option 2
);
print_r($array);

打印

Array
(
    [1] => 1 
    [2] => 2 
    [3] => 2
)

您现在可以通过array_unique($array);访问数组来获取一组唯一值。

$array_unique = array_unique($array);
$array_unique_values = array_values($array_unique);

// Access array values directly and store into variables.
// Notice that arrays in PHP start with the index zero.
$option1 = $array_unique_values[0];
$option2 = $array_unique_values[1];

echo "Option #1: " . $option1 . "\n";
echo "Option #2: " . $option2;

打印

Option #1: 1
Option #2: 2

瞧。

答案 2 :(得分:0)

PHP中没有内置函数。但你可以试试像:

$echoList = array();
function echoOnce( $text )
{
   global $echoList;
   if(!in_array($text, $echoList)) {
      echo $text;
      $echoList[] = $text;
   }
}

然后只使用echoOnce( "whatever" )代替echo "whatever"