2017-03-12 2 views
0

Meine json Daten ist wie folgt:Wie kann ich den Wert von Json-Daten erhöhen, wenn bestimmte Bedingungen erfüllt sind?

$json_data = '{"1": "1", "2": "1"}'; 

Hinweis:

1 = Stern

1 = die Anzahl der Nutzer, die Sterne geben 1

2 = Stern

1 = die Anzahl der Benutzer, die den Stern 2 angeben

Wenn ich Variablen wie dieses:

$star = 1; 

möchte ich überprüfen, variable $star in Schlüssel existieren von $json_data oder nicht

Wenn vorhanden ist, wird es aktualisieren:

$json_data = '{"1": "2", "2": "1"}'; 

Also, wenn $star in Schlüssel von $json_data vorhanden sind, erhöht es den Wert

Ich versuche wie folgt aus:

<?php 
    $star = 1; 
    $json_data = '{"1": "1", "2": "1"}'; 
    $array_data = json_decode($json_data, true); 
    if(array_key_exists($star, $array_data)) { 
     $value = $array_data[$star]; 
     if ($value !== false) { 
      // update here 
     } 

    } 
?> 

ich immer noch verwirrt bin, wie es

zu aktualisieren

Gibt es jemanden, der mir helfen kann?

Antwort

1

Wenn Sie alles als Strings innerhalb Ihrer JSON bleiben wollen Daten würde ich diesen Code verwenden. Ich werfe die Variable zuerst als int und dann 1 dazu. Dann werfe ich es als String.

<?php 

$star = 1; 
$json_data = '{"1": "1", "2": "1"}'; 
$array_data = json_decode($json_data, true); 
if(array_key_exists($star, $array_data)) { 
    $value = $array_data[$star]; 
    if ($value !== false) { 
     $array_data[$star] = (string)((int)$value + 1); 
    } 

} 

echo json_encode($array_data); 

?> 
0

können Sie mit isset()

if(isset($array_data[$star])) { 
    $array_data[$star]++; 
}else{ 
    $array_data[$star]=1; 
} 
0
$star = 1; 
$json_data = '{"1": "1", "2": "1"}'; 
$array_data = json_decode($json_data, true); 
if(array_key_exists($star, $array_data)) { 
    if (isset($array_data[$star]) AND $array_data[$star] !== false) { 
     $array_data[$star] = 'change'; 
    } 

} 
$json_data = json_encode($array_data); 

Sie können auch über die Weitergabe Variablen als Referenzen lernen, aber das ist nicht erforderlich hier

Verwandte Themen