将数组值与mysqli结果进行比较

时间:2017-08-16 04:30:26

标签: php arrays checkbox mysqli

有人可以帮我解决这个问题吗?

我在编辑页面中使用的代码下面,我想比较复选框值,如果匹配,则将其设为已选中。

我的两个数组值的示例

$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 } ?>

1 个答案:

答案 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 } ?>