2016-05-14 8 views
0

Entschuldigung, wenn meine Frage wenig verwirrend ist. die folgende ist mein json Ausgabeform mysql:formatieren von JSON-Daten. Wie json Array mit dem gleichen Wert als Schlüssel zusammenführen?

[{"ID":"2","BatchID":"0","Day":"Sunday","Low":"01:15","High":"02.45","Mid": "01:30 01:45 02:00 02:15 02:30"}, {"ID":"1","BatchID":"0","Day":"Sunday","Low":"00.45","High":"00:30","Mid":" 01:30 01:45 02:00 02:15 02:30"}] 

ich den Tag „Sonntag“ in diesem Fall verwendet werden soll, die Objekte zu verschmelzen beide so etwas zu bilden:

"Sunday":[ 
     { 
      "low":"00:15", 
      "high":"00.45", 
      "mid":["00:30"] 
     }, 
     { 
      "low":"01:15", 
      "high":"02.45", 
      "mid":["01:30","01:45","02:00","02:15","02:30"] 
     } 

    ] 

auch sind Gibt es irgendwelche Werkzeuge, die mir helfen können, Modelle in PHP zu machen, um dies in einer db zu speichern?

danke im voraus.

max

+0

ps: mein PHP-Objekt sieht wie folgt aus: Array ([0] => stdClass Object ([ID] => 2 [BatchID] => 0 [Tag] => Sonntag [Niedrig] => 01:15 [Hoch] => 02.45 [Mitte] => 01:30 01:45 02:00 02:15 02:30) [1] => stdClass Objekt ([ID] => 1 [BatchID] => 0 [Tag] => Sonntag [Niedrig] => 00.45 [Hoch] => 00:30 [Mitte] => 01:30 01:45 02:00 02:15 02:30)) – Maxxer

Antwort

3

Sie so etwas wie verwenden:

$data = json_decode($mysql_data, true); 
$res = []; 
foreach ($data as $d) 
{ 
    $add = ['low' => $d['Low'], 
      'high' => $d['High'], 
      'mid' => explode(' ', trim($d['Mid']))]; 
    if (!isset($res[$d['Day']])) 
     $res[$d['Day']] = $add; 
    else 
     $res[$d['Day']][] = $add; 
} 
$pretty_data = json_encode($res); 
+0

Danke Du Ebahi, du hast meine ganze Nacht gerettet! :)) Ich entfernte die Bedingung und es funktioniert wie ein Charme;)/* if (! isset ($ res [$ d ['Tag']])) $ res [$ d ['Day']] = $ hinzufügen; sonst * / – Maxxer

1

Sie können es in PHP neu zu organisieren, wie die andere Antwort vermuten lässt. Sie können sie auch in Javascript reorganisieren:

var values = [{"ID":"2","BatchID":"0","Day":"Sunday","Low":"01:15","High":"02.45","Mid": "01:30 01:45 02:00 02:15 02:30"}, {"ID":"1","BatchID":"0","Day":"Sunday","Low":"00.45","High":"00:30","Mid":" 01:30 01:45 02:00 02:15 02:30"}]; 

var final = {}; 
values.forEach(function(element, index, array) { 
    if (!final[element.Day]) 
     final[element.Day] = []; 

    final[element.Day].push(
     { 
      "low": element.Low, 
      "high": element.High, 
      "mid": element.Mid.split(" ") 
     } 
    ); 
}); 
Verwandte Themen