2016-04-18 5 views
0

Ich habe dieses Array:in json

array(7) { 
    ["Locate"]=> 
    array(2) { 
    [0]=> 
    array(3) { 
     [0]=> 
     string(16) "Self Set - Short" 
     [1]=> 
     string(6) "Locate" 
     [2]=> 
     string(4) "1701" 
    } 
    [1]=> 
    array(3) { 
     [0]=> 
     string(15) "Self Set - Long" 
     [1]=> 
     string(6) "Locate" 
     [2]=> 
     string(4) "1521" 
    } 
    } 
    ["Step 1 - Campus"]=> 
    array(2) { 
    [0]=> 
    array(3) { 
     [0]=> 
     string(16) "Self Set - Short" 
     [1]=> 
     string(15) "Step 1 - Campus" 
     [2]=> 
     string(4) "1471" 
    } 
    [1]=> 
    array(3) { 
     [0]=> 
     string(15) "Self Set - Long" 
     [1]=> 
     string(15) "Step 1 - Campus" 
     [2]=> 
     string(4) "1239" 
    } 
    } 
    ["Step 2 - Date"]=> 
    array(2) { 
    [0]=> 
    array(3) { 
     [0]=> 
     string(16) "Self Set - Short" 
     [1]=> 
     string(13) "Step 2 - Date" 
     [2]=> 
     string(3) "717" 
    } 
    [1]=> 
    array(3) { 
     [0]=> 
     string(15) "Self Set - Long" 
     [1]=> 
     string(13) "Step 2 - Date" 
     [2]=> 
     string(3) "607" 
    } 
    } 
    ["Step 3 - Time"]=> 
    array(2) { 
    [0]=> 
    array(3) { 
     [0]=> 
     string(16) "Self Set - Short" 
     [1]=> 
     string(13) "Step 3 - Time" 
     [2]=> 
     string(3) "508" 
    } 
    [1]=> 
    array(3) { 
     [0]=> 
     string(15) "Self Set - Long" 
     [1]=> 
     string(13) "Step 3 - Time" 
     [2]=> 
     string(3) "436" 
    } 
    } 
} 

Ich exportieren es als json dies mit:

$data = array(); 
foreach($group as $key => $value) { 
    foreach($value as $key2) { 
     $data[] = array(
      'event' => $key, 
      $key2[0] => $key2[2], 
     ); 
    } 
} 

echo json_encode($data); 

Meine aktuelle Ausgabe ist:

[{"event":"Locate","Self Set - Short":"1698"},{"event":"Locate","Self Set - Long":"1515"},{"event":"Step 1 - Campus","Self Set - Short":"1469"},{"event":"Step 1 - Campus","Self Set - Long":"1230"},{"event":"Step 2 - Date","Self Set - Short":"717"},{"event":"Step 2 - Date","Self Set - Long":"603"},{"event":"Step 3 - Time","Self Set - Short":"508"},{"event":"Step 3 - Time","Self Set - Long":"433"},{"event":"Submit Button","Self Set - Short":"343"},{"event":"Submit Button","Self Set - Long":"309"},{"event":"Reschedule - New","Self Set - Short":"18"},{"event":"Reschedule - New","Self Set - Long":"21"},{"event":"Reschedule - Keep","Self Set - Short":"3"},{"event":"Reschedule - Keep","Self Set - Long":"3"}] 

ich brauche es so zu exportieren:

[{"event":"Locate","Self Set - Short":"1698", "Self Set - Long":"1515"},{"event":"Step 1 - Campus","Self Set - Short":"1469","Self Set - Long":"1230"},{"event":"Step 2 - Date","Self Set - Short":"717","Self Set - Long":"603"},{"event":"Step 3 - Time","Self Set - Short":"508","Self Set - Long":"433"},{"event":"Submit Button","Self Set - Short":"343","Self Set - Long":"309"},{"event":"Reschedule - New","Self Set - Short":"18","Self Set - Long":"21"},{"event":"Reschedule - Keep","Self Set - Short":"3","Self Set - Long":"3"}] 

Das Endergebnis muss die beiden Subarrays nehmen und sie mit dem Haupt-Array-Schlüssel trennt Komma anstelle von pro Set Gruppen erstellen Ich brauche 1. Jede Hilfe wäre toll!

+0

Ihre Werte in json wird von Ihrem ursprünglichen Array verändert? Ist das ein Schreibfehler oder eine Berechnung? –

+0

Auch letzte JSON haben etwas mehr Wert, die nicht im ursprünglichen Array vorhanden ist. –

Antwort

0

Basierend auf Ihrer ersten Array i diesen Code geschrieben haben: -

<?php 

$data = array(
    "Locate"=>array(
     0=>array(
      0=>"Self Set - Short", 
      1=>"Locate", 
      2=>"1701" 
     ), 
     1=>array(
      0=>"Self Set - Long", 
      1=>"Locate", 
      2=>"1521" 
     ) 
    ), 
    "Step 1 - Campus"=>array(
     0=>array(
      0=>"Self Set - Short", 
      1=>"Step 1 - Campus", 
      2=>"1471" 
     ), 
     1=>array(
      0=>"Self Set - Long", 
      1=>"Step 1 - Campus", 
      2=>"1239" 
     ) 
    ), 
    "Step 2 - Date"=>array(
     0=>array(
      0=>"Self Set - Short", 
      1=>"Step 2 - Date", 
      2=>"717" 
     ), 
     1=>array(
      0=>"Self Set - Long", 
      1=>"Step 2 - Date", 
      2=>"607" 
     ) 
    ), 
    "Step 3 - Time"=>array(
     0=>array(
      0=>"Self Set - Short", 
      1=>"Step 3 - Time", 
      2=>"508" 
     ), 
     1=>array(
      0=>"Self Set - Long", 
      1=>"Step 3 - Time", 
      2=>"436" 
     ) 
    ) 
); 
    echo "<pre/>";print_r($data); 
    $final_data = array(); 
    foreach ($data as $dat){ 
     foreach($dat as $key=>$value){ 
      $final_data[$value[1]]['event'] = $value[1]; 
      $final_data[$value[1]][$value[0]] = $value[2]; 
     } 

    } 
$final_data = json_encode(array_values($final_data)); 
    echo ($final_data); 
?> 

Ausgang: - https://eval.in/555678

Hinweis: -

1. Ihre Werte in der gewünschten json ist geändert von Ihrem ursprünglichen Array?

2. Auch letzte json haben einige mehr Wert, die nicht in der ursprünglichen Array ist.

Prüfen Sie selbst und richtig sind. Dank

+0

Danke Anant, genau das habe ich gebraucht. Ich habe dies als beantwortet markiert. Nachdem ich diese Daten auf dem Chart angeschaut habe, merke ich, dass ich ein bisschen mehr Arbeit machen muss, denn statt des Gesamtwertes brauche ich wirklich den Prozentsatz von Schritt zu Schritt. Also im Wesentlichen würde ich Schritt 2 - Datum/Schritt 1 - Campus benötigen und in Prozent konvertieren, um von Schritt zu Schritt Trichter zu bekommen. Kann das in deiner Logik arbeiten? – capric621