我有以下代码:
$data = array();
foreach ($_POST as $field => $value) {
// ex: $field = "1f_fieldname";
if($field[1] == "f")
{
// $field[0] is numeric
$i = $field[0];
$data = array($i => $value);
}
}
数组$ data只打印分配的最后一个元素 例如:
print_r($data);
打印以下内容:
数组(
[3] =>“value3”
)
而不是:
数组(
[0] =>“value1”,
[1] => “value2”,
[2] => “value2”,
[3] => “值3”
)
它出了什么问题?
编辑: 当我从foreach内部打印数组时,它会打印整个元素。 但是当我将它打印在foreach之外时,它将只打印最后一个。
答案 0 :(得分:1)
这一行错了:
$data = array($i => $value);
它用一个只包含单个元素的新数组替换整个数组。它应该是:
$data[$i] = $value;
向数组添加新元素。但是,如果$_POST
中的两个键与第一个字符具有相同的数字(例如1f_fieldA
和1f_fieldB
),则后一个键将替换第一个键。