我被困在生成字符串多维数组中,我需要你的帮助。 这是字符串(JSON):从爆炸字符串生成多维数组
{
"API_OVERVIEW" : "Overview",
"API_OVERVIEW_CON1" : "API v1 offers a simple REST API to retrieve information about our markets. The API responses are JSON encoded arrays. Please be aware that calls to the API are rate limited to 10 requests per second, any requests exceeding this rate will be met with a HTTP 503 response.",
"API_REFERENCE" : "API Reference",
"API_MARKET_SUMMARY" : "Market Summary",
"API_MARKET_STATS" : "Market Stats",
"API_MARKET_TRADES" : "Market Trades",
"API_MARKET_ORDERS" : "Market Orders",
"API_MARKET_CHARTDATA" : "Market Chart Data",
}
现在我需要通过“_”爆炸的key
并将其转换为多维数组,然后在最后,我需要设置的值。 输出应该是这样的:
"API" =>
[
"MARKET" =>
["SUMMARY" => "Market Summary"],
["STATS" => "Market STATS"]
...
]
"ANOTHER STRING" =>
[
....
]
目前,我得到这个:
array(1) {
["API"]=>
array(1) {
["MARKET"]=>
array(1) {
["SUMMARY"]=>
string(14) "Market Summary"
}
}
}
[8]=>
array(1) {
["API"]=>
array(1) {
["MARKET"]=>
array(1) {
["STATS"]=>
string(12) "Market Stats"
}
}
}...
这是我的代码:
$results = [];
foreach($data as $key => $value){
$result = [];
$exploded = explode('_', $key);
$path = &$result;
$counter = 1;
foreach($exploded as $explodedpart){
if(!array_key_exists($explodedpart, $path)){
if($counter == count($exploded)){
$path[$explodedpart] = $value;
}else{
$path[$explodedpart] = array();
}
}
$path = &$path[$explodedpart];
$counter++;
}
array_push($results, $result);
}
return $results;
理念从这个答案采取:https://stackoverflow.com/a/8993400/1672261
请发布您的json字符串。 – Amy
请发布您的精确json字符串 –
它已更新,它实际上是Angular的翻译文件,只是一个短的文件 – Alen