使用php in_array基于从数据库中获取值选择的多个选项

时间:2018-09-12 10:48:40

标签: php

我有类似$SubTopicid = $L_array["subtopicid"];的php变量

然后以这种方式在选项标签中

<option <?php if (In_array($URow[0],explode(" ",$SubTopicid))) echo 'selected' ; ?> value="<?php echo $URow[0];?>"><?php echo $URow[1];?></option>

问题是未选择多个值

当我爆炸此变量$SubTopicids = explode(" ",$SubTopicid);

以这种方式获取结果

Array ( [0] => 248 ) Array ( [0] => 72 ) Array ( [0] => 72,248 )
选择了

单个值(如 248 ),但未选择双值(如 72,248

1 个答案:

答案 0 :(得分:1)

因此,如果我理解正确,您希望将$SubTopicid中的所有选项都选中为已标记。

如果您的$SubTopicid可以同时包含单选项和多选项,则您可能希望在while循环之前将它们爆炸。

请考虑以下内容:

$SubTopicid = "248 72 72,248";
$SubTopicids = array();
foreach(explode(" ",$SubTopicid ) as $elem)
    $SubTopicids = array_merge($SubTopicids ,explode(",",$elem));

在这种情况下,您的数组将如下所示:

Array
(
    [0] => 248
    [1] => 72
    [2] => 72
    [3] => 248
)

如果需要,您可以使用array-unique

现在,当您运行时:

while($URow=mysql_fetch_array($RowRes)){
    <option <?php if (In_array($URow[0],$SubTopicids)) echo 'selected' ; ?> value="<?php echo $URow[0];?>"><?php echo $URow[1];?></option>
}

您将所有给定选项标记为选中。