我有以下轮胎尺寸数组:
Array
(
[0] => 155
[1] => 70
[2] => 13
)
Array
(
[0] => 155
[1] => 80
[2] => 13
)
Array
(
[0] => 165
[1] => 65
[2] => 14
)
Array
(
[0] => 175
[1] => 65
[2] => 14
)
Array
(
[0] => 175
[1] => 70
[2] => 13
)
Array
(
[0] => 175
[1] => 70
[2] => 14
)
等等。现在我正在创建一个下拉菜单,以便人们可以选择他们正在搜索的轮胎尺寸。所以这是我的PHP代码:
include 'database.php';
$result = $mysqli->query('SELECT DISTINCT SKU_SIZE FROM SKU_DATA WHERE SKU_BRANDNAME = "'.$brand.'" ORDER BY SKU_SIZE');
while( $row = $result->fetch_assoc()){
$sku_size = $row['SKU_SIZE'];
$chars = preg_split('/[^\d]/', $sku_size, -1, PREG_SPLIT_NO_EMPTY);
echo "<option>".$chars[0]."</option>";
}
现在代码只是显示每个数组中的第一个数字,对于他们选择的第一个下拉列表。
现在它显示155,155,165,175,175 - 我想要它只是显示唯一值,所以它只显示155,165,175。
更新:谢谢!我得到了那部分工作。一个简单的问题..订单不太正确,不确定我做错了什么。这是预览:
答案 0 :(得分:2)
创建一个数组并在输出之前检查每个值是否在数组中。如果它不在数组中,请在输出之前将其添加。
include 'database.php';
$result = $mysqli->query(
'SELECT DISTINCT SKU_SIZE
FROM SKU_DATA WHERE SKU_BRANDNAME = "'.$brand.'"
ORDER BY SKU_SIZE'
);
$seen = array();
while( $row = $result->fetch_assoc()){
$sku_size = $row['SKU_SIZE'];
$chars = preg_split('/[^\d]/', $sku_size, -1, PREG_SPLIT_NO_EMPTY);
if(in_array($chars[0], $seen))
continue;
$seen[] = $chars[0];
echo "<option>".$chars[0]."</option>";
}
答案 1 :(得分:2)
您可以使用array_unique()函数从数组中删除任何重复的唯一项。
EG:
$arrays = array(1,2,3) + array(1,2,3);
print_r(array_unique($arrays));
// Will print just: Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 )
答案 2 :(得分:1)
使用它:
while( $row = $result->fetch_assoc()){
$sku_size = $row['SKU_SIZE'];
$chars = preg_split('/[^\d]/', $sku_size, -1, PREG_SPLIT_NO_EMPTY);
$sizes[$chars[0]] = true;
}
ksort($sizes, SORT_NUMERIC);
foreach ($sizes as $size => $tmp){
echo "<option value=\"$size\">$size</option>";
}
答案 3 :(得分:1)
使用临时数组存储echo
编辑的数字。
答案 4 :(得分:1)
使用第一个值
创建一个新数组$diameter = array();
foreach ($tires as $tire) {
$diameter[] = $tire[0];
}
然后,使用array_unique()删除重复项,或者只将它们添加到$ diameter(如果它们尚未存在)。
然后使用$ diameter数组创建下拉列表。
这样做的好处是你还可以对$ diameter数组进行排序。