2017-06-26 4 views
-1

Ich habe diese JSON-Daten erzeugt mit PHP (Eloquent Sammlung)Ändern PHP Eloquent Sammlung

{ 
    "1498454460": [ 
     { 
     "value_0": 22.7 
     }, 
     { 
     "value_2": 23 
     } 
    ], 
    "1498454640": [ 
     { 
     "value_0": 22.8 
     }, 
     { 
     "value_1": 53 
     }, 
     { 
     "value_2": 23 
     } 
    ] 
} 

Mein Ziel, dass die Daten in dieses Format mit PHP ist immer:

{ 
    "timestamp": 1498454460, 
    "value_0": 22.7, 
    "value_2": 23 
}, 
{ 
    "timestamp": 1498454640, 
    "value_0": 22.8, 
    "value_1": 53, 
    "value_2": 23 
} 

ist mein Gehirn gesperrt, so siehe i nicht Lösung ...:/

+0

Sie sind in Laravel, richtig? Wenn Sie die Sammlung als Objekt haben, können Sie die [Flatten-Hilfsmethode] (https://laravel.com/docs/5.4/collections#method-flatten) verwenden. –

+0

Laravel yep! Flatten Helfer funktioniert nicht .... ich denke – vk72

Antwort

2

Decode die json in Array iterieren dem Array und schaffen die gewünschte Struktur wie folgt:

<?php 
$json = ' 
{ 
    "1498454460": [ 
     { 
     "value_0": 22.7 
     }, 
     { 
     "value_2": 23 
     } 
    ], 
    "1498454640": [ 
     { 
     "value_0": 22.8 
     }, 
     { 
     "value_1": 53 
     }, 
     { 
     "value_2": 23 
     } 
    ] 
}'; 

$result = array(); 
foreach (json_decode($json, true) as $key => $value) { 
    $item = array(); 
    $item['timestamp'] = $key; 
    foreach ($value as $value2) { 
     $item = array_merge($item, $value2); 
    } 
    $result[] = $item; 
} 

echo json_encode($result); 
die(); 
+0

Natürlich! Genial! Vielen Dank! – vk72

Verwandte Themen