PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   Json Array erweitern. (http://www.selfphp.de/forum/showthread.php?t=26108)

json 20.02.2018 15:56:02

Json Array erweitern.
 
Hallo zusammen,

sicherlich eine einfache Frage, aber meine Lösungsansetze bringen mich zu meinem Ergebniss.


Code:

$handle = fopen ( "$dateiname", "w" );
               
$artikel = array();
$artikel[111]['datum'] = 'test1';
$artikel[111]['uhrzeit'] = 'test2';
$artikel[111]['test'] = 'xxxxxxxx';
               
$result = array ('artikel' => $artikel);
               
fwrite($handle, json_encode($result));
       
fclose ( $handle );

Damit erstelle ich eine JSON Datei. Dies klappt auch erst einmal wunderbar.

Raus kommt...
Code:

{"artikel":{"111":{"datum":"test1","uhrzeit":"test2","test":"xxxxxxxx"}}}
-----

Jetzt zu meinem Problem...
Jetzt möchte ich ein weiteres Array anlegen. Z.b. mit 222
Ich habe es folgendermassen probiert...



Code:

//Öffne hier die Datei im Schreib UND Lese Modus
$handle = fopen ( "$dateiname", "w+" );
//lese meine vorhandene test.json ein
$json_erweitern = json_decode($handle, true);
                               
        //erstelle ein neues Array
        $artikel = array();
        $artikel[222]['datum'] = 'test1';
        $artikel[222]['uhrzeit'] = 'test2';
        $artikel[222]['test'] = 'xxxxxxxx';
   
    $result = array ('artikel' => $artikel );
                               
        //HIER VERSUCHE ICH DIESE BEIEN IRGENDWIE ZUSAMMEN ZU BEKOMMEN
        $neu_arr = array_merge($json_erweitern, $result);
        //$neu_arr = $json_erweitern + $result;
                               
                               
        fwrite($handle, json_encode($neu_arr));

        fclose ( $handle );

Rasu soll irgendwie ...
Code:

"{"artikel":{"111":{"datum":"test1","uhrzeit":"test2","test":"xxxxxxxx"},"222":{"datum":"test1","uhrzeit":"test2","test":"xxxxxxxx"}}}"
kommen.

Wo ist mein Fehler. Mit arrays habe ich auch bisher nie gearbeitet, irgendwo da scheint auch mein Fehler zu sein.

Bin für jeden hinweiss dankbar

Viele Grüsse

chorn 20.02.2018 16:47:40

AW: Json Array erweitern.
 
Zunächst mal gibt fopen ein handle zurück, json_decode erwartet einen String. Arbeite doch einfach mit file_get_contents und file_put_contents wenn du keine pointer brauchst. Dann brauchst du die Arrays auch nicht "irgendwie" zusammenbringen, sondern du kannst das was von json_decode kommt einfach benutzen wie oben inkl. speichern, genauso, $artikel kommt dann halt aus json_decode.

vt1816 20.02.2018 16:51:04

AW: Json Array erweitern.
 
PHP-Code:

//Öffne hier die Datei im Schreib UND Lese Modus
$handle fopen $dateiname"r+" );
//lese meine vorhandene test.json ein
$json fread($handlefilesize($dateiname));
$json_erweitern json_decode($jsontrue);

    
//erweitert das Array
    
$json_erweitern['artikel'][222]['datum'] = 'test11';
    
$json_erweitern['artikel'][222]['uhrzeit'] = 'test22';
    
$json_erweitern['artikel'][222]['test'] = 'yyyyyyyy';
    
    
fseek($handle0);
    
fwrite($handlejson_encode($json_erweitern));
    
fclose $handle ); 



Alle Zeitangaben in WEZ +2. Es ist jetzt 05:55:26 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.