Здравствуйте!
Нужна помощь, второй день мучаюсь.
Есть 2 массива, оба из БД:
Доступные способы оплаты:Array (
[0] => Array (
[id] => 1
[name] => WebMoney
)
[1] => Array (
[id] => 2
[name] => Яндекс.Деньги
)
[2] => Array (
[id] => 3
[name] => Qiwi
)
[3] => Array (
[id] => 4
[name] => Visa/MasterCard
)
)
Уже выбранные способы оплаты:Array (
[0] => Array (
[id] => 1
[name] => WebMoney
)
[1] => Array (
[id] => 2
[name] => Яндекс.Деньги
)
)
При редактировании, показывается форма где все способы из первого массива, НО у меня не получается поставить значение checked уже выбранным ранее.
Пытался делать через foreach:
<?php foreach ($уже_выбранные as $p_m) : ?>
<?php foreach ($все_доступные as $s_p_m): ?>
<input type="checkbox" name="payment_method[]" value="<?php echo $p_m['id']; ?>" <?php echo $p_m['id'] === $s_p_m['id'] ? 'checked' : ''; ?> /> <?php echo $p_m['name']; ?><br>
<?php endforeach; ?>
<?php endforeach; ?>
Получаю следующее:
Способы дублируются, хотя выбранные отмечаются.
Если делать искать ключи через array_key_exists:foreach($payment as $key=>$value){
$c = array_key_exists($key, $cheked) ? 'Выбран' : 'Не выбран';
echo $value['name'].' '.$c.'<br/>';
}
, то картина следующая (2 варианта):
, в то время как в БД:
UPDATE!
с
in_array все заработала! Спасибо Рустаму :-)