在单一表单中,有一些名为:
的输入在我使用post作为方法提交表单后,我想将输入分组为这样的数组:
$post = array(
'foo' => array(),
'bar' => array(),
'baz' => array()
)
因此所有以'foo'开头的array_keys都将被推送到'foo'数组,以及其他数组。与各自的价值观相结合。
这是我的尝试:
$post = array('foo' => array(), 'bar' => array(), 'baz' => array());
echo '<pre>';
foreach ($_POST as $key => $value) {
if (startsWith($key, 'foo_')) {
array_push($post['foo'], $key = $value);
} else if(startsWith($key, 'bar_')) {
} else if (startsWith($key, 'baz_')) {
}
}
foreach ($post['foo'] as $key => $value) {
echo $key . ' = ' . $value . '<br>';
}
最后一个foreach语句输出此
0 = 1111
1 = 1112
2 = 210
而不是其array_keys,如果$key
输出
答案 0 :(得分:2)
$post = array();
foreach($_POST as $key => $value) {
$key = explode('_', $key);
$post[$key[0]][$key[1]] = $value;
}
echo '<pre>';
print_r($post);
echo '</pre>';
答案 1 :(得分:0)
如果您能够根据需要命名输入字段,则可以从头开始命名它们name="foo[name]"
等 - 这将为您提供相应的数组结构,而无需使用其他代码自行构建数据。