[英]Convert complex numerical array to associative array
我有一个如下所示的数组数据:
Array (
[0] => Array (
[0] => Name:
[1] => John W.
[2] => Registration ID:
[3] => 36
)
[1] => Array (
[0] =>Age:
[1] => 35
[2] => Height:
[3] => 5'11"
)
[3] => Array (
[0] => Sex:
[1] => M
[2] => Weight:
[3] => 200lbs
)
[4] => Array (
[0] => Address
)
[5] => Array (
[0] => 6824 crestwood dr delphi, IN 46923
))
我想把它转换成这样的关联数组:
Array(
['Name']=> John W.
['Registration ID']=> 36
['Age']=> 35
['Height'] => 5'11''
['Sex']=>M
['Weight']=>200lbs
['Address']=>6824 crestwood dr delphi, IN 46923
)
我完全不知道如何做到这一点,因为应该是数组列标题也是按顺序排列的,所以很难转换这个数组。
我很感激任何帮助,谢谢。
鉴于您的原始数组名为$origin
,您可以这样做:
$merged = array();
foreach($origin as $val) {
$merged = array_merge($merged, $val);
}
$tot = count($merged) - 1;
for ($i=0;$i<$tot;$i+=2) {
$result[$merged[$i]] = $merged[$i+1];
}
var_dump($result); // To test the resulting array
首先,我使用array_merge()
将$origin
数组展平为仅一个维度/深度,因此我们稍后对其进行迭代(每次迭代每 2 个项目)并将每对项目( $i
和$i+1
)分配给结果数组。
看起来,对于前 3 个孩子,您可以将偶数值分配给前一个元素作为键。 然后,将第四个指定为第五个元素的键。
$result = array();
foreach ($array as $key => $value)
{
if ($key < 4) {
$elements = array_values($value);
$result[$elements[0]] = $elements[1];
$result[$elements[2]] = $elements[3];
}
if ($key == 4)
$fifthkey = $value;
if ($key == 5)
$result[$fifthkey] = $value;
}
另外,请注意,您必须转义高度字符串引号。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.