在php中管理二维数组

时间:2018-03-17 17:38:56

标签: php arrays

我是编程的新手,我正在尝试创建一个表单,通过表单提交将值传递给数据库。

在我的html表单中,我有一些输入:

<input name="lastnames[1][]" />
<input name="lastnames[2][]" />

等 现在,在我的php文件中,我得到像这样的值的lastnames数组:

<?php
$lastname = $_POST['lastnames'];
?>

我希望将此数组的值保存到另一个数组,然后能够读取新数组的值。 所以,我尝试了以下但没有成功:

//For saving values to new array:
<?php
$newarray = array();
foreach($lastname as $lastnames) {
   foreach($lastnames as $values) {
      $newarray[$lastnames][$values] = $values;
  }
}
?>
//For reading values from new array:
<?php

foreach($newarray as $lastnames) {
   foreach($lastnames as $values) {
      echo $newarray[$lastnames][$values];
  }
}
?>

对此有何想法?我试图通过一个例子理解逻辑,所以能够使用二维数组,所以任何帮助真的很感激!

1 个答案:

答案 0 :(得分:0)

循环遍历多维数组并将结果存储在新数组变量$ newArray中。

<?php
    $lastname=array(array("name"=>"d1","family"=>"s1"),array("name"=>"d2","family"=>"s2"));
    $newarray = array();
    foreach($lastname as $key=> $lastnames) {
        foreach($lastnames as $key2=>$values) {
            $newarray[$key][$key2] = $values;
        }
    }
    foreach($newarray as $key=>$lastnames) {
        foreach($lastnames as $key2=> $values) {
            echo $key."->".$key2."->".$values."<br>";
        }
    }

您也可以使用reduce并使用array_merge

$result = array_reduce($lastname, function($c,$v){
    return array_merge(array_values($c),array_values($v));
}, array());
var_dump($result);