У меня есть 2 массива, $ categories_filters и $ added_filters. Они оба возвращают результаты. При печати с использованием print_r они возвращают данные в следующем формате:
$ categories_filters возвращает данные следующим образом:
Array ( [0] => Array ( [filterid] => 67 [catid] => 1 [filtername] => FILTERNAME1 [sorder] => 1 [visible] => 1 ) [1] => Array ( [filterid] => 68 [catid] => 1 [filtername] => FILTERNAME155 [sorder] => 2 [visible] => 1 ) .....
$ added_filters возвращает следующее:
Array ( [0] => Array ( [addfilterid] => 9 [addid] => 5 [filterid] => 67 ) [1] => Array ( [addfilterid] => 10 [addid] => 5 [filterid] => 163 ) )....
Я пытаюсь сделать следующее: у меня есть флажок для каждого значения в $ categories_filters. Если filterid существует в массиве $ added_filters, я хочу, чтобы этот флажок был проверен, в противном случае я хочу, чтобы этот флажок был просто не показан.
Я пытаюсь добиться этого с помощью следующего кода:
if($categories_filters) { foreach ($categories_filters as $key1=>$value){ echo "<div class='chb_group'>"; echo "<span class='custom_chb_wrapper'>"; foreach ($adds_filters as $key2=>$af) { if($af['filterid'] == $value['filterid']) { echo "<input type='checkbox' name='categoriesfilters[]' id= '".$value['filterid']."' value='" .$value['filterid'] ."' checked = 'checked' class='zcheckbox' />"; } else { echo "<input type='checkbox' name='categoriesfilters[]' id= '".$value['filterid']."' value='" .$value['filterid'] ."' class='zcheckbox' />"; } } echo "<label>" .$value['filtername']. "</label>"; echo "</span>"; echo "</div>" } }else { echo "No filters"; }
Быстрые ловушки поймут, что я получаю 2 флажка, отображаемых для каждого значения в массивах, вместо одного (отмеченного или непроверенного)
Я предполагаю, что здесь нужен другой подход, но я застрял в коде пару часов, и у меня заканчиваются идеи. Любая помощь будет глубоко оценена.
С уважением, Джон