我有一个来自 POST 的多维度数组
[key:value key:value[array one {key1:value, key2:value}{key1:value, key2:value}][array two{key1:value, key2:value}...] key:value key:value]
我正在使用嵌套数组生成 xml 条目,并将它们标识如下:
foreach ($_POST as $key){
if (is_array($key)){
foreach ($key as $key2 => $value){
$array_type = substr($key2, 0,2);
if ($array_type == 'ec'){
$xml .= '<tns:PersonNamesInfoType>';
if ($key2 == 'ec_fname'){
$xml .= '<GivenName>'.$value.'</GivenName>';
//<MidInitial>MidInitial</MidInitial>
}
else if ($key2 == 'ec_lname'){
$xml .= '<FamilyName>'.$value.'</FamilyName>';
//</tns:PersonNamesInfoType>
}
else if ($key2 == 'ec_rel'){
$xml .= ' <Relationship>'.$value.' </Relationship>';
// <tns:PhoneInfoType>
//<tns:PhoneType></tns:PhoneType>
}
else if ($key2 == 'ec_ophone'){
$xml .= '<Number>'.$value.'</Number>';
}
else {
$xml .= '<IsPrimary>'.$value.'</IsPrimary>';
}
$xml .= '</tns:PersonNamesInfoType>';
}
else if($array_type == 've') {
$xml .= '<tns:AutoInfoType>';
foreach ($key as $key2 => $value){
if ($key2 == 'veh_year'){
$xml .= '<Year>'.$value.'</Year>';
}
else if ($key2 == 'veh_make'){
$xml .= '<Make>'.$value.'</Make>';
}
else if ($key2 == 'veh_model'){
$xml .= '<Model>'.$value.'</Model>';
}
else if ($key2 == 'veh_plate'){
$xml .= '<Plate>'.$value.'</Plate>';
}
else if ($key2 == 'veh_state'){
$xml .= '<tns:StateType>'.$value.'</tns:StateType>';
}
else {$xml .= '<IsPrimary>'.$value.'</IsPrimary>';}
}
$xml .= '</tns:AutoInfoType>';
}
}
}
}
这会产生不正确的结果
<tns:PersonNamesInfoType>
<GivenName>'.$value.'</GivenName>
</tns:PersonNamesInfoType>
<tns:PersonNamesInfoType>
<FamilyName>'.$value.'</FamilyName>
</tns:PersonNamesInfoType>
Instead of:
<tns:PersonNamesInfoType>
<GivenName>'.$value.'</GivenName>
<FamilyName>'.$value.'</FamilyName>
</tns:PersonNamesInfoType>
根据遇到的第一个键值来分离每个数组的数据的更好解决方案是什么
1[ec_fname]
1[veh_lname]
2[ec_fname]
2[veh_lname]