次のような値を保持する配列があります。
$items_pool = Array (
[0] => Array ( [id] => 1 [quantity] => 1 )
[1] => Array ( [id] => 2 [quantity] => 1 )
[2] => Array ( [id] => 72 [quantity] => 6 )
[3] => Array ( [id] => 4 [quantity] => 1 )
[4] => Array ( [id] => 5 [quantity] => 1 )
[5] => Array ( [id] => 7 [quantity] => 1 )
[6] => Array ( [id] => 8 [quantity] => 1 )
[7] => Array ( [id] => 9 [quantity] => 1 )
[8] => Array ( [id] => 19 [quantity] => 1 )
[9] => Array ( [id] => 20 [quantity] => 1 )
[10] => Array ( [id] => 22 [quantity] => 1 )
[11] => Array ( [id] => 29 [quantity] => 0 )
)
次に、入力しようとしているフォームがあります。アイテム データベースをループし、考えられるすべてのアイテムを出力し、$items_pool に既に存在するアイテムをチェックします。
<?php foreach ($items['items_poolpackage']->result() as $item): ?>
<input type="checkbox" name="measure[<?=$item->id?>][checkmark]" value="<?=$item->id?>">
<?php endforeach; ?>
ここで何を達成しようとしているのかは論理的にわかっていますが、プログラミングがわかりません。
大まかに書かれた私が探しているのは、次のようなものです(実際のコードではありません):
<input type="checkbox" name="measure[<?=$item->id?>][checkmark]" value="<?=$item->id?>" <?php if ($items_pool['$item->id']) { echo "SELECTED"; } else { }?>>
具体的には、配列全体、すべてのキー値 (ID) を通るこの条件付きループで、一致する場合はチェックボックスが選択されます。
<?php if ($items_pool['$item->id']) { echo "SELECTED"; } else { }?>
このように構造化されたループから、多くの「余分な」処理を意味する可能性があることを理解しています。
TL;DR - 配列内でループし、キー「id」をチェックしてから、文字列を出力する必要があります。