Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将多个复选框值保存到数据库并在多维数组中正确显示它们_Php_Arrays_Wordpress_Woocommerce - Fatal编程技术网

Php 如何将多个复选框值保存到数据库并在多维数组中正确显示它们

Php 如何将多个复选框值保存到数据库并在多维数组中正确显示它们,php,arrays,wordpress,woocommerce,Php,Arrays,Wordpress,Woocommerce,我在WordPress中的多维数组存在逻辑问题。我试图将多个复选框值放入具有相应键值的多维数组中 案例场景:用户希望在相应的订单状态中添加订单状态,如: 用户希望将订单状态“二”、“三”、“四”添加到订单状态“一”中 并将订单状态“一”、“三”、“五”添加到订单状态“二” 并将订单状态“一”添加到订单状态“四”中 因此,阵列应如下所示: Array ( [one] => Array ( [0] => two [

我在WordPress中的多维数组存在逻辑问题。我试图将多个复选框值放入具有相应键值的多维数组中

案例场景:用户希望在相应的订单状态中添加订单状态,如:

用户希望将订单状态“二”、“三”、“四”添加到订单状态“一”中

并将订单状态“一”、“三”、“五”添加到订单状态“二”

并将订单状态“一”添加到订单状态“四”中

因此,阵列应如下所示:


Array
(
    [one] => Array
        (
            [0] => two
            [1] => three
            [2] => four
        )

    [two] => Array
        (
            [0] => one
            [1] => three
            [2] => five
        )

    [three] => Array
        (
        )

    [four] => Array
        (
            [0] => one
        )

    [five] => Array
        (
        )

    [six] => Array
        (
        )

    [seven] => Array
        (
        )

    [eight] => Array
        (
        )

)
到目前为止我掌握的代码

对于修剪订单状态:


    $_next_order_status_names = array();
    $_next_order_status_name_index = 0;
    $_order_statuses = array_values(wc_get_order_statuses());

    foreach($_order_statuses as $_order_status)
    {    
        $name = trim($_order_status);
        $name = str_replace(' ', '_', $name);
        $name = strtolower($name);
        array_push($_next_order_status_names, $name);
    }

从数据库获取列表并将其放入html:

        $next_statuses = $options['next_statuses'];

        foreach($_next_order_status_names as $_next_order_status_name){
                if(in_array ($_next_order_status_names[$_next_order_status_name_index], $next_statuses[$_next_order_status_name]))
                $content .= "<input type='checkbox' name='".esc_html($_next_order_status_names[$_next_order_status_name_index])."' value='".esc_html($_next_order_status_names[$_next_order_status_name_index])."' checked>". esc_html ($_next_order_status_name) . "<br>";
                else
                $content .= "<input type='checkbox' name='".esc_html($_next_order_status_names[$_next_order_status_name_index])."' value='".esc_html($_next_order_status_names[$_next_order_status_name_index])."'>". esc_html ($_next_order_status_name) ."<br>";
                $_next_order_status_name_index++;
            }
        
并尝试将复选框值数组添加到相应的数组:

            foreach($_next_order_status_names as $_next_order_status_name) 
            {
                foreach($_next_order_status_names as $_next_order_status_name_ind) 
                {
                if( isset($_POST[$_next_order_status_name]) && !empty($_POST[$_next_order_status_name]) ) array_push($next_statuses[$_next_order_status_name_ind], sanitize_text_field($_POST[$_next_order_status_name]));
                }
            }
所以我的问题是如何将复选框值转换成相应的键值。现在,它将所有的一阶状态放入所有键中。所有想法都受到赞赏。提前感谢:)

            foreach($_next_order_status_names as $_next_order_status_name) 
            {
                foreach($_next_order_status_names as $_next_order_status_name_ind) 
                {
                if( isset($_POST[$_next_order_status_name]) && !empty($_POST[$_next_order_status_name]) ) array_push($next_statuses[$_next_order_status_name_ind], sanitize_text_field($_POST[$_next_order_status_name]));
                }
            }