如何将传入的复选框值转换为一个隐藏字段值


How can I convert incoming checkbox values into one hidden field value?

我的提交页面包括一些复选框:

<input type="checkbox" name="p_queue_type[]" id="p_queue_type_all" value="All">
<input type="checkbox" name="p_queue_type[]" id="p_queue_type_CR" value="CR" checked>
<input type="checkbox" name="p_queue_type[]" id="p_queue_type_FPU" value="FPU">
<input type="checkbox" name="p_queue_type[]" id="p_queue_type_HOLD" value="HOLD" checked>

我的处理页面需要将任何传入的"p_queue_type[]"值转换为一个隐藏字段(本示例所需结果假设选中了"CR"answers"HOLD"):

<input type="hidden" name="p_queue_type[]" value="['CR','HOLD']" />

我正试图将此功能合并到一个现有的循环中,该循环在传入的$_POST数组上迭代:

    foreach ($attributes as $field => $value){
        echo('<input type="hidden" name="'.$field.'" id="'.$field.'" value="'.$value.'" />');
    };

但这导致了一个无用的隐藏字段值:

<input type="hidden" name="p_queue_type[]" value="Array" />

这应该有效:

foreach ($attributes as $field => $value){
    $value = is_array($value) ? '[' . implode(',', $value) . ']' : $value;
    echo('<input type="hidden" name="'.$field.'" id="'.$field.'" value="'.$value.'" />');
};

它将php数组转换为html友好的数组字符串