Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.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中使用foreach循环将值对转换为多维关联数组_Php_Mysql_Multidimensional Array_Associative Array_Form Processing - Fatal编程技术网

添加密钥困难=>;在php中使用foreach循环将值对转换为多维关联数组

添加密钥困难=>;在php中使用foreach循环将值对转换为多维关联数组,php,mysql,multidimensional-array,associative-array,form-processing,Php,Mysql,Multidimensional Array,Associative Array,Form Processing,我使用多维关联数组来存储用户输入,以便稍后插入mysql UPDATE语句 $updateFields = array(); foreach($fields as $column => $field){ if (isset($_POST[$field]) && !empty($_POST[$field])){ if($column == "a" || $column == "b" || $column == "c" || $column == "d"

我使用多维关联数组来存储用户输入,以便稍后插入mysql UPDATE语句

$updateFields = array();
foreach($fields as $column => $field){
    if (isset($_POST[$field]) && !empty($_POST[$field])){
        if($column == "a" || $column == "b" || $column == "c" || $column == "d" || $column == "e" || $column == "f" || $column == "g" ){
            $updateFields[0] = [$column => "$_POST[$field]"];
        }
        else if($column == "h" || $column == "i"){
            $updateFields[1] = [$column => "$_POST[$field]"];
        }
        else if($column == "j" || $column == "k" || $column == "l" || $column == "m"){
            $updateFields[2] = [$column => "$_POST[$field]"];
        }
    }
}
我使用的上面的布局创建了数组,但是只存储了“父”关联数组中“子”关联数组的最后一对键:值对

使用打印进行可视化:

Array (
       [0] => Array (
              [g] => value
              ) 
       [1] => Array (
              [i] => value 
              ) 
       [2] => Array ( 
              [m] => value 
              ) 
       )
我正在努力实现的目标:

Array ( 
       [0] => Array (
              [a] => value 
              [b] => value 
              [c] => value 
              [d] => value 
              [e] => value 
              [f] => value 
              [g] => value 
              ) 
       [1] => Array ( 
              [h] => value 
              [i] => value 
              ) 
       [2] => Array ( 
              [j] => value 
              [k] => value 
              [l] => value 
              [m] => value 
              ) 
       )
我在stackoverflow上看到过多个关于在关联数组中插入key:pair值的线程,所以我希望这不符合重复的条件。如果有人感兴趣,我很乐意提供更多的信息

试试这个

$updateFields = array();
foreach($fields as $column => $field){
    if (isset($_POST[$field]) && !empty($_POST[$field])){
        if($column == "a" || $column == "b" || $column == "c" || $column == "d" || $column == "e" || $column == "f" || $column == "g" ){
            $updateFields[0][$column] = $_POST[$field];
        }
        else if($column == "h" || $column == "i"){
            $updateFields[1][$column] = $_POST[$field];
        }
        else if($column == "j" || $column == "k" || $column == "l" || $column == "m"){
            $updateFields[2][$column] = $_POST[$field];
        }
    }
}

试试这段代码这段代码行得通

$fields = $_POST;
$updateFields = array();
foreach($fields as $column => $field){
    if (isset($column[$field]) && !empty($column[$field])){
        if($column == "a" || $column == "b" || $column == "c" || $column == "d" || $column == "e" || $column == "f" || $column == "g" ){
            $updateFields[0][$column] =$field;
        }
        else if($column == "h" || $column == "i"){
            $updateFields[1][$column] = $field;
        }
        else if($column == "j" || $column == "k" || $column == "l" || $column == "m"){
            $updateFields[2][$column] = $field;
        }
    }
}
echo "<pre>";print_r($updateFields);
$fields=$\u POST;
$updateFields=array();
foreach($column=>$field形式的字段){
if(设置($column[$field])&&&!empty($column[$field])){
如果($column==“a”| |$column==“b”| |$column==“c”| |$column==“d”| |$column==“e”| |$column==“f”| |$column==“g”){
$updateFields[0][$column]=$field;
}
else if($column==“h”| |$column==“i”){
$updateFields[1][$column]=$field;
}
else if($column==“j”| |$column==“k”| |$column==“l”| |$column==“m”){
$updateFields[2][$column]=$field;
}
}
}
回声“;打印(更新字段);

您需要
$updateFields[x][$column]=$\u POST['field'],此时您正在每次迭代中重新分配
$updateFields[x]
,谢谢billyonecan。非常简单直接。很好用,谢谢。这也是一个很好的可行的解决方案。我会记住的。