转换包含多维数组键和值的字符串 PHP
Converting string containing multidimensional array keys and values PHP
我使用 TPP API
检查域名可用性和域名注册,但我在 string
收到回复。
获取会话,return字符串OK: t73484678463765
域检查,return字符串woohoo123.nz: OK: Minimum=1&Maximum=2
在其他情况下,return string woohoo123.nz: ERR: 102, This is message
当它 return OK
它在 child 中有 &
但是当 ERR
那个时候它有 ,
我想把returnstring
转换成array
比如输入woohoo123.nz: OK: Minimum=1&Maximum=2
,输出在array
之后
[
'woohoo123.nz' => [
'OK' => [
'Minimum' => 1,
'Maximum' => 2,
]
]
]
输入 woohoo123.nz: ERR: 102, This is message
并在 array
之后输出
[
'woohoo123.nz' => [
'ERR' => [
'code' => 102,
'message' => 'This is message',
]
]
]
我更喜欢重用代码,我更喜欢 recursive
和 callback
但在这种情况下不确定。
不能 100% 确定这是否是您要查找的内容。它适用于您的示例,但只有在输入字符串严格遵循该格式时才会继续工作。
function stringToArray($inputStr) {
$array = [];
$topComponents = explode(': ',$inputStr);
$parametersStr = $topComponents[count($topComponents) -1];
if (strpos($parametersStr,'&') !== FALSE) {
$tmpArr = explode('&',$parametersStr);
foreach ($tmpArr as $val) {
$comp = explode('=',$val);
$array[$comp[0]] = $comp[1];
}
} else if ($topComponents[count($topComponents) - 2] === "ERR") {
$tmpArray = explode('ERR: ',$parametersStr);
$tmpArray = explode(', ',$tmpArray[0]);
$array = [
"code" => intval($tmpArray[0]),
"message" => $tmpArray[1]
];
} else {
$array = $parametersStr;
}
for ($i=count($topComponents) -2; $i >= 0; $i--) {
$newArray = [];
$newArray[$topComponents[$i]] = $array;
$array = $newArray;
}
return $array;
}
print_r(stringToArray("OK: t73484678463765"));
我使用 TPP API
检查域名可用性和域名注册,但我在 string
收到回复。
获取会话,return字符串
OK: t73484678463765
域检查,return字符串
woohoo123.nz: OK: Minimum=1&Maximum=2
在其他情况下,return string
woohoo123.nz: ERR: 102, This is message
当它 return OK
它在 child 中有 &
但是当 ERR
那个时候它有 ,
我想把returnstring
转换成array
比如输入woohoo123.nz: OK: Minimum=1&Maximum=2
,输出在array
[
'woohoo123.nz' => [
'OK' => [
'Minimum' => 1,
'Maximum' => 2,
]
]
]
输入 woohoo123.nz: ERR: 102, This is message
并在 array
[
'woohoo123.nz' => [
'ERR' => [
'code' => 102,
'message' => 'This is message',
]
]
]
我更喜欢重用代码,我更喜欢 recursive
和 callback
但在这种情况下不确定。
不能 100% 确定这是否是您要查找的内容。它适用于您的示例,但只有在输入字符串严格遵循该格式时才会继续工作。
function stringToArray($inputStr) {
$array = [];
$topComponents = explode(': ',$inputStr);
$parametersStr = $topComponents[count($topComponents) -1];
if (strpos($parametersStr,'&') !== FALSE) {
$tmpArr = explode('&',$parametersStr);
foreach ($tmpArr as $val) {
$comp = explode('=',$val);
$array[$comp[0]] = $comp[1];
}
} else if ($topComponents[count($topComponents) - 2] === "ERR") {
$tmpArray = explode('ERR: ',$parametersStr);
$tmpArray = explode(', ',$tmpArray[0]);
$array = [
"code" => intval($tmpArray[0]),
"message" => $tmpArray[1]
];
} else {
$array = $parametersStr;
}
for ($i=count($topComponents) -2; $i >= 0; $i--) {
$newArray = [];
$newArray[$topComponents[$i]] = $array;
$array = $newArray;
}
return $array;
}
print_r(stringToArray("OK: t73484678463765"));