【发布时间】:2015-07-24 16:32:43
【问题描述】:
我的查询从我的数据库中返回包含年份数组的数据行。例如:
1 > 2004,2005,2006,2007
2 > 2003,2004,2005
3 > 2004,2005,2006,2007.
当我选择此数据时,我将其组合成一个数组,然后使用 array_unique 过滤掉重复项,但这不起作用。我返回一个包含所有值的完整数组。
mysql_query('select * from stock where Make LIKE "%'.$_REQUEST['Make'].'%" AND Model LIKE "%'.$_REQUEST['model'].'%" group by YearRange order by YearRange DESC');
while($row=mysql_fetch_array($Year)){
$a = explode(',', $row['YearRange']);
$unique_array = array_unique($a);
foreach ($unique_array as $key => $value)
{
echo "<option>".$value."</option>";
}
}
所以在上面的示例中,我只希望显示以下值:
2003,2004,2005,2006,2007 在每个<option>
我明白了:
2004,2005,2006,2007,2003,2004,2005,2004,2005,2006,2007 在每个<option>
【问题讨论】:
-
您可以通过打印显示任何 $row['YearRange'] 值并将其放入代码中吗?
-
请stop using
mysql_*functions。它们不再被维护并且是officially deprecated。改为了解 prepared statements,并考虑使用 PDO,it's not as hard as you think。 -
@anantkumarsingh 如果我回显 YearRange 我得到:1> 2004,2005,2006,2007 2> 2003,2004,2005 3> 2004,2005,2006,2007。
-
你需要在explode之后将每个值添加到一个新数组中,然后唯一的新数组。
-
@JayBlanchard 我该怎么做?两个 foreach 循环?