在 php 中使用 foreach 循环难以将键 => 值对添加到多维关联数组
difficulty adding a key => value pair to a multidimensional associative array using a foreach loop in php
我正在使用多维关联数组来存储用户输入,以便稍后插入 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]"];
}
}
}
我正在使用的上面的布局创建了数组,但是 仅存储 'child' 关联数组的最后 key:value 对 'parent' 关联数组。
使用 print_r 的可视化:
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
)
)
我在 Whosebug 上看到多个线程涉及在关联数组中插入 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);
我正在使用多维关联数组来存储用户输入,以便稍后插入 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]"];
}
}
}
我正在使用的上面的布局创建了数组,但是 仅存储 'child' 关联数组的最后 key:value 对 'parent' 关联数组。
使用 print_r 的可视化:
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
)
)
我在 Whosebug 上看到多个线程涉及在关联数组中插入 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);