Ich bin bei der Erzeugung mehrdimensionaler Array aus String fest und ich brauche deine Hilfe. Dies ist die Zeichenfolge (json):Erzeuge multidimensionales Array aus der explodierten Zeichenkette
{
"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",
}
Jetzt muss ich die key
durch „_“ explodieren und es mehrdimensionales Array umwandeln, dann am Ende muss ich den Wert einzustellen. Ausgabe sollte wie folgt sein:
"API" =>
[
"MARKET" =>
["SUMMARY" => "Market Summary"],
["STATS" => "Market STATS"]
...
]
"ANOTHER STRING" =>
[
....
]
Derzeit bekomme ich diese:
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"
}
}
}...
Dies ist mein Code:
$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;
Idee von dieser Antwort wurde: https://stackoverflow.com/a/8993400/1672261
Bitte posten Sie Ihre JSON-Zeichenfolge. – Amy
bitte posten Sie Ihre genaue JSON-Zeichenfolge –
Es ist aktualisiert, es ist eigentlich eine Übersetzungsdatei für Angular, nur eine kurze – Alen