2017-08-16 14 views
0

誰かがこの問題の解決に手伝ってもらえますか?配列の値とmysqliの結果の比較

以下のコードは編集ページで使用されています。チェックボックスの値を比較し、一致する場合はチェックします。私の2列の

例は

$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がチェックされますが、コードの下にチェックされているのは1つだけです。チェックボックス3

私は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 } ?> 

答えて

2

第一:あなたはin_array機能を使用する必要があります。

第2の: in_array関数は、特定の値の配列を検索します.if値が存在する場合はtrueを返し、それ以外の場合はfalseを返します。第三

空の場合は配列として変数を宣言

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

が、それは '$ CategoryDe​​tails = ISSET($のcategory_listを)すべきだと思いますか? $ category_list:array(); ' –

+0

えええええええええええええええええええええええええん – JYoThI

+0

ありがとうございました。ありがとうございました。 – RAWhoLovesMusic

関連する問題