如何在php上将提交的表单数组转换为此数组?

时间:2011-11-30 01:28:15

标签: php arrays forms

假设我有一个html表单提交的以下数组:

array(
    'firstname' => array('Sara','Jim'),
    'lastname'  => array('Gibson','Jobs')
);

我想要实现的是以下数组:

array(
    array(
        'firstname' => 'sara',
        'lastname'  => 'Gibson'
    ),
    array(
        'firstname' => 'Jim',
        'lastname'  => 'Jim'
    )
);

我需要一个函数来自动排序数组,不是通过输入数据而是自动处理数组数据。

2 个答案:

答案 0 :(得分:2)

$new_arr = array();
$length = count($arr['firstname']);
for($i = 0; $i < $length; $i++)
{
   $new_arr[] = array('firstname' => $arr['firstname'][$i], 'lastname' => $arr['lastname'][$i]);
}

答案 1 :(得分:1)

我认为@Tim Cooper的解决方案没有任何问题,但如果您不想手动提及密钥,您也可以使用:

$new_arr = array();
foreach ($arr as $key => $value)
{
  foreach ($value as $numkey => $value2)
  {
    $new_arr[$numkey][$key] = $value2;
  }
}