我有一个如下所示的数组数据:
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
)
我根本不知道如何做到这一点,因为假设是数组列标题也是顺序的,所以很难转换这个数组。
我欣赏的任何帮助,thx。
答案 0 :(得分:2)
鉴于您的原始数组名为$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
数组展平为只有一个维度/深度,因此我们稍后迭代它(每次迭代踩两个项目)并分配每对项目({{ 1}}和$i
)到结果数组。
答案 1 :(得分: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;
}
另请注意,您必须转义高度字符串引号。