Функция Checked () на многомерном массиве

Я динамически генерирую флажки на одной из страниц параметров. Этот код, который я использую для создания нескольких флажков:

<?php foreach($shopCategories as $shopCategory) { ?> <input type="checkbox" value="<?php echo $shopCategory->term_id; ?>" name="term_meta[ss_aff_categories][]" <?php checked($term_meta['ss_aff_categories'], $shopCategory->term_id, true) ?>> <?php echo $shopCategory->name; ?><br/> <?php } ?> 

Проблема в том, что при наличии функции checked() я получаю уведомление:

Примечание. Преобразование массива в строку … в wp-includes / general-template.php в строке 3099

Функция не проверяет выбранные поля.

Я думаю, что он не может обрабатывать несколько массивов ( name="term_meta[ss_aff_categories][]" ) в этой настройке.

Как я могу применить функцию checked() для проверки значений в многомерном массиве – аналогично приведенному выше?

Solutions Collecting From Web of "Функция Checked () на многомерном массиве"

Вопрос давно, но только для справки, в этом конкретном случае, и если кто-то просто хочет использовать checked функцию с тем, что кажется array (вместо того, чтобы проверять и выводить «проверено» на месте) здесь находится решение:

 checked( in_array( $shopCategory->term_id, $term_meta['ss_aff_categories'] ) ) 

Это работает, потому что checked может принимать только один аргумент и сравнивать его значение со вторым аргументом по умолчанию, для которого установлено значение boolean true . Поэтому в этом случае, если значение $shopCategory->term_id находится в $term_meta['ss_aff_categories'] функция $term_meta['ss_aff_categories'] вернет логическое значение true . В конечном счете, значение, которое мы передаем checked , вместе со вторым аргументом по умолчанию checked , преобразуется в строки и сравнивается.