2017-03-12 7 views
0

私のJSONデータは、このようなものです:特定の条件を満たす場合、jsonデータの値をどのように増やすことができますか?

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

注:

1 =星

1 =星を与えるユーザー数1

2 =星

1 =スター2に与えるユーザー数

私はこのような変数がある場合:

$star = 1; 

を私は変数$starを確認したいが存在する場合、それがために更新します$json_data

のキーに存在します。

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

$star$json_dataのキーに存在する場合、値は

私はこのようにしてみてください:

<?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 
     } 

    } 
?> 

私はまだ混乱している、それを

を更新する方法を私を助けることができる誰もがありますか?

答えて

1

を必要としないthatsのデータこのコードを使用します。最初に変数をintとしてキャストし、それに1を加えます。それから私はそれを文字列として投げます。

<?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

あなたは(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); 

また、参照として変数を渡すことを学ぶことができますが、あなたはすべてがあなたのJSONの内側に文字列として滞在したい場合は、ここで

関連する問題