我使用$_GET['category']
并将其分配给$category
。
//如果$ _GET [' category']包含空格,则创建类别数组
if(strpos($_GET['category'],' ') !== false) {
$category = explode (' ',$_GET['category']);
}else{
$category = $_GET['category'];
}
所以$category
可以是数组或字符串
我在网站上有下拉选择框,并希望通过将选中="已选择" 设置为下拉选择中的特定选项来显示用户搜索的类别。
所以我的问题是我可以将字符串与数组进行比较吗?,而不检查它是否是一个数组,就像这样。
<option value="option1"<?= (isset($category) && ($category == 'option1')) ? ' selected="selected"' : '';?>>option1</option>
<option value="option2"<?= (isset($category) && ($category == 'option2')) ? ' selected="selected"' : '';?>>option2</option>
<option value="option3"<?= (isset($category) && ($category == 'option3')) ? ' selected="selected"' : '';?>>option3</option>
<option value="option4"<?= (isset($category) && ($category == 'option4')) ? ' selected="selected"' : '';?>>option4</option>
或者我必须检查$category
是否不是这样的数组。
<option value="option1"<?= (isset($category) && (!is_array($category)) && ($category == 'option1')) ? ' selected="selected"' : '';?>>option1</option>
<option value="option2"<?= (isset($category) && (!is_array($category)) && ($category == 'option2')) ? ' selected="selected"' : '';?>>option2</option>
<option value="option3"<?= (isset($category) && (!is_array($category)) && ($category == 'option3')) ? ' selected="selected"' : '';?>>option3</option>
<option value="option4"<?= (isset($category) && (!is_array($category)) && ($category == 'option4')) ? ' selected="selected"' : '';?>>option4</option>
答案 0 :(得分:2)
您无需将类别值设置为字符串。 只需使用如下。
if(isset($_GET['category'])) {
$category = explode (' ',$_GET['category']);
}
<option value="option1"<?= (isset($category) && in_array('option1', $category)) ? ' selected="selected"' : '';?>>option1</option>
<option value="option2"<?= (isset($category) && in_array('option2', $category)) ? ' selected="selected"' : '';?>>option2</option>
答案 1 :(得分:1)
你应该总是使用爆炸。像这样你总是得到一个数组。
$category = explode (' ',$_GET['category']);
之后,您可以使用
测试值是否在数组中if(in_array($option, $category)) echo 'selected="selected";
答案 2 :(得分:0)
当然你可以测试一个带有字符串的数组,如果它是数组或者它是字符串,那么你应该测试变量isset
,因为如果你使用的话,空字符串等于空值与您在代码中执行的操作符==
相同,否则您可以使用===
代替