【发布时间】:2021-08-11 04:25:33
【问题描述】:
我正在尝试显示 subject list 并带有另一个数组中存在的复选标记值
这里我有一个数组:subject list (name $fetchSubject)
> Array ( [0] => Array ( [sub_id] => 1 [sub_name] => Mathematics ) [1]
> => Array ( [sub_id] => 2 [sub_name] => Physics ) [2] => Array ( [sub_id] => 3 [sub_name] => Chemistry) [3] => Array ( [sub_id] => 4
> [sub_name] => Biology ) [4] => Array ( [sub_id] => 5 [sub_name] =>
> Science ))
另一个存储用户选择列表的数组 (name $job_sub)
Array ( [0] => Array ( [sub_id] => 5 ) [1] => Array ( [sub_id] => 7 ) [2] => Array ( [sub_id] => 8 ) [3] => Array ( [sub_id] => 9 ))
HTML
<select name="subjects[]" id="subject" class="form-control selectpicker " title="Select Subject" data-live-search="true" multiple="multiple">
<?php echo '<option value=""> Select Subjects</option>'; ?>
<?php
foreach($fetchSubject as $sub)
{
if(in_array($sub['sub_id'],$job_sub))
{
echo '<option value="'.$sub['sub_id'].'" selected>'.$sub['sub_name'].'</option>';
}else{
echo '<option value="'.$sub['sub_id'].'" >'.$sub['sub_name'].'</option>';
}
unset($sub);
}
?>
</select>
整个场景是我试图以更新形式显示用户数据,这就是为什么我需要标记用户之前插入的数据
【问题讨论】:
-
$sub 数组中存储了什么?
-
@user3772091 我是说 $sub 数组 ($job_sub) 有一个用户数据,我正在尝试交叉检查
-
好的,我明白了。您的 $job_sub 数组是多维数组。你的 in_array() 代码可能没有像你想象的那样处理。
-
@user3772091 是的,你明白了..
-
我已经更新了你的代码。让我知道它是否有效
标签: php multidimensional-array associative-array