我的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
}
}
?>
我仍然感到困惑,如何更新
有没有人可以帮助我?
答案 0 :(得分:1)
如果您希望所有内容都作为JSON数据中的字符串保留,我将使用此代码。我首先将变量转换为int,然后将其加1。然后我把它作为一个字符串。
static void SetExplicit(string file)
{
var f = TagLib.File.Create(file);
var tags = (TagLib.Mpeg4.AppleTag) f.GetTag(TagLib.TagTypes.Apple);
TagLib.ByteVector customTagName = "rtng";
TagLib.ByteVector customTagData = new byte[] { 1 };
var customTagFlag = (UInt32)TagLib.Mpeg4.AppleDataBox.FlagType.ContainsData;
tags.SetData(customTagName, customTagData, customTagFlag);
f.Save();
}
答案 1 :(得分:0)
你可以使用isset()
if(isset($array_data[$star])) {
$array_data[$star]++;
}else{
$array_data[$star]=1;
}
答案 2 :(得分: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);
您还可以了解如何将变量作为参考传递,但这里不需要