多次元配列を文字列から生成するのに苦労しています。 これは、文字列(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