有人可以帮我解决这个问题吗?
我在编辑页面中使用的代码下面,我想比较复选框值,如果匹配,则将其设为已选中。
我的两个数组值的示例
$CategoryDetails : Array ( [0] => 6 [1] => 1 )
$Category_data : Array ( [0] => 1 [1] => 3 [2] => 6 [3] => 2 [4] => 4 [5] => 7)
$Category_data
用于创建复选框,$CategoryDetails
是选定的值。因此,如上所述,例如复选框1&应检查3,但在代码下面只给我一个检查即。 checkbox3
我需要将array1的每个值与array2进行比较。
<?php
$CategoryDetails = isset($category_list) ? $category_list : ' ';
$Category = dbSelectByWhere("Highlight_categories", "WHERE Highlight_cat_status=1", "Order By Highlight_Category_name");
$k = 0;
while ($Category_data = dbFetchArray($Category)) {
?>
<input type="checkbox" name="category[]" id="Category" value="<?php echo $Category_data['Highlight_category_id']; ?>" data-parsley-mincheck="1" required class="flat" <?php
if (isset($CategoryDetails) && ($CategoryDetails[$k] == $Category_data['Highlight_category_id'])) {
echo 'checked';
if ($k < (count($CategoryDetails) - 1)) {
$k++;
}
}
?>/> <?php echo $Category_data['Highlight_Category_name']; ?>
<?php } ?>
答案 0 :(得分:2)
1st:您需要使用 in_array 功能。
第二名: in_array函数在数组中搜索特定值。如果存在,则返回true,否则返回false。
3rd:如果为空,则将变量声明为数组
$CategoryDetails = isset($category_list) ? $category_list : array();
PHP:
while ($Category_data = dbFetchArray($Category)) {
?>
<input type="checkbox" name="category[]" id="Category" value="<?php echo $Category_data['Highlight_category_id']; ?>" data-parsley-mincheck="1" required class="flat" <?php
if (isset($CategoryDetails) && in_array($Category_data['Highlight_category_id'],$CategoryDetails)) {
echo 'checked';
}
?>/> <?php echo $Category_data['Highlight_Category_name']; ?>
<?php } ?>