2 回答
TA贡献1852条经验 获得超7个赞
您可以创建一个数组并使用 in_array 进行检查,
while ($row = mysqli_fetch_assoc($result)) {
if ($row['id'] == '1') {
if(!in_array('a', $ar))
$ar[] = 'a';
} else if ($row['id'] == '2') {
if(!in_array('b', $ar))
$ar[] = 'b';
} else if ($row['id'] == '3') {
if(!in_array('c', $ar))
$ar[] = 'c';
} else if ($row['id'] == '4' || $row['id'] == '5' || $row['id'] == '6') {
if(!in_array('d', $ar))
$ar[] = 'd';
}
}
对于您的代码段,开关是更好的版本,
$ar = [];
while ($row = mysqli_fetch_assoc($result)) {
$a = '';
switch ($row['id']) {
case '1':$a = 'a';
break;
case '2':$a = 'b';
break;
case '3':$a = 'c';
break;
case '4':case '5':case '6':$a = 'd';
break;
default:break;
}
!empty($a) && !in_array($a, $ar) && $ar[] = $a;
}
最后使用内爆,
echo implode(' ', $ar);
TA贡献1815条经验 获得超10个赞
PHP 7+ 的另一种解决方案:
$idMapping = [
1 => 'a',
2 => 'b',
3 => 'c',
4 => 'd',
5 => 'd',
6 => 'd',
];
$letters = [];
while ($row = mysqli_fetch_assoc($result)) {
if (
($letter = $idMapping[(int) $row['id']] ?? null)
&& !in_array($letter, $letters)
) {
$letters[] = $letter;
}
}
- 2 回答
- 0 关注
- 133 浏览
添加回答
举报