Php 从多维数组生成相关的键数组
如何从以下表单中读取帖子数据,由于某些原因,我没有使用像Customer[0][fullname]这样的索引,而是使用Customer[][fullname]Php 从多维数组生成相关的键数组,php,arrays,Php,Arrays,如何从以下表单中读取帖子数据,由于某些原因,我没有使用像Customer[0][fullname]这样的索引,而是使用Customer[][fullname] <form action="form.php" method="post"> <input type="text" name="Customer[][fullname]" /> <input type="text" name="Customer[][nic]" /> <input type="t
<form action="form.php" method="post">
<input type="text" name="Customer[][fullname]" />
<input type="text" name="Customer[][nic]" />
<input type="text" name="Customer[][fullname]" />
<input type="text" name="Customer[][nic]" />
<input type="text" name="Customer[][fullname]" />
<input type="text" name="Customer[][nic]" />
<input type="submit" />
</form>
我想打破上面的数组,就像下面的数组一样
array(“全名”=>abc,“网卡”=>111)
阵列(“全名”=>def,“nic”=>222)
阵列(“全名”=>xyz,“nic”=>333)
这是我想到的,它适用于注释中要求的两个以上的字段
代码:
<?php
$array = array(
array('fullname' => 'abc'),
array('fullname' => 'def'),
array('fullname' => 'ghi'),
array('nic' => '111'),
array('nic' => '222'),
array('nic' => '333')
);
$index = 0;
foreach($array as $value) {
if (!isset($old)) {
$old = key($value);
}
if (key($value) != $old) {
$index = 0;
$old = key($value);
}
$result[$index][key($value)] = $value[key($value)];
$index++;
}
print_r($result);
Array
(
[0] => Array
(
[fullname] => abc
[nic] => 111
)
[1] => Array
(
[fullname] => def
[nic] => 222
)
[2] => Array
(
[fullname] => ghi
[nic] => 333
)
)
你试过什么了吗?这个阵列来自哪里?为什么是这样格式化的呢?迭代数组可以很容易地解决这个问题,我相信任何使用
var\u dump
的人都非常清楚,@RocketHazmat。我相信如果有什么聪明的方法可以解决这个问题。谢谢你的解决方案,但大多数时候变量都是未知的,我想在不知道变量名称的情况下解决这个问题,比如全名、网卡、电话等,所以最后重复的变量名称应该存储在不同的数组中,变量可能有很多,一个变量可能存在3次以上,我们无法修复逻辑中的任何东西如果只有两个字段,那么您的代码工作得很好,我想知道我是否获得了任何数组元素的代码。@G.Muqtada检查我的新答案。我想我有你的解决办法!
<?php
$array = array(
array('fullname' => 'abc'),
array('fullname' => 'def'),
array('fullname' => 'ghi'),
array('nic' => '111'),
array('nic' => '222'),
array('nic' => '333')
);
$index = 0;
foreach($array as $value) {
if (!isset($old)) {
$old = key($value);
}
if (key($value) != $old) {
$index = 0;
$old = key($value);
}
$result[$index][key($value)] = $value[key($value)];
$index++;
}
print_r($result);
Array
(
[0] => Array
(
[fullname] => abc
[nic] => 111
)
[1] => Array
(
[fullname] => def
[nic] => 222
)
[2] => Array
(
[fullname] => ghi
[nic] => 333
)
)