我有一个数组,并选择多个字段我想要做的是每当文件加载所有选择选项将使用数组ID选择。我的数组是
数组([0] => 3 [1] => 5 [2] => 9)
我的选择字段是:
<select id="selSkills" name="selSkills[]" class="selectpicker" multiple>
<?php
$myArray = explode(',',$empInfo[0]['skills']);
$skillSQL_count = COUNT($skillInfo);
for($i=0; $i<$skillSQL_count; $i++) { ?>
<option value="<?php echo $skillInfo[$i]['skill_id'];?>" <?php if($skillInfo[$i]['skill_id'] == $myArray[$i]) { echo "selected"; } ?>><?php echo $skillInfo[$i]['skill_name'];?></option>
<?php } ?>
</select>
但不知怎的,我得到一个数组
PHP错误已经遇到严重性未定义的偏移量3
任何帮助都将受到高度赞赏。提前谢谢。
答案 0 :(得分:1)
而不是
if($skillInfo[$i]['skill_id'] == $myArray[$i])
使用
if(in_array($skillInfo[$i]['skill_id'], $myArray))
答案 1 :(得分:0)
你也做过,
<?php
$myArray = isset($empInfo[0]['skills']) ? explode(',',$empInfo[0]['skills']) : [];
$select = '<select id="selSkills" name="selSkills[]" class="selectpicker" multiple>';
if (!empty($myArray)) {
foreach ((array)$myArray as $key => $value) {
$select .= '<option
value="'.(isset($skillInfo[$i]['skill_id']) ? $skillInfo[$i]['skill_id'] : 0).'"
'.(isset($skillInfo[$i]['skill_id']) && $skillInfo[$i]['skill_id'] == $value ? "selected" : "").'>
'.(isset($skillInfo[$i]['skill_name']) ? $skillInfo[$i]['skill_name'] : '')
.'</option>';
}
} else {
$select .= '<option value="0">No record found !</option>';
}
$select .= '<select>';
echo $select;
?>