Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如果json数据满足某些条件,我如何更新它?_Php_Arrays_Json - Fatal编程技术网

Php 如果json数据满足某些条件,我如何更新它?

Php 如果json数据满足某些条件,我如何更新它?,php,arrays,json,Php,Arrays,Json,我的json数据如下所示: $json_data = '{"2": "1", "3": "3"}'; $user = 3; $star = 4; <?php $user = 3; $star = 4; $json_data = '{"2": "1", "3": "3"}'; $array_data = json_decode($json_data, true); if(in_array($user, $array_data)) {

我的json数据如下所示:

$json_data = '{"2": "1", "3": "3"}';
$user = 3;
$star = 4;
<?php
    $user = 3;
    $star = 4;
    $json_data = '{"2": "1", "3": "3"}';
    $array_data = json_decode($json_data, true);
    if(in_array($user, $array_data))
    {
        // update here
    }
?>
注:

2=星, 1=用户, 3=星, 3=用户

如果我有这样的变量:

$json_data = '{"2": "1", "3": "3"}';
$user = 3;
$star = 4;
<?php
    $user = 3;
    $star = 4;
    $json_data = '{"2": "1", "3": "3"}';
    $array_data = json_decode($json_data, true);
    if(in_array($user, $array_data))
    {
        // update here
    }
?>
我想检查变量
$user
是否存在于
$json\u data

如果存在,将更新为:

$json_data = '{"2": "1", "4": "3"}';
因此,如果
$user
存在于
$json_data
中,它将更新
$star

我试着这样:

$json_data = '{"2": "1", "3": "3"}';
$user = 3;
$star = 4;
<?php
    $user = 3;
    $star = 4;
    $json_data = '{"2": "1", "3": "3"}';
    $array_data = json_decode($json_data, true);
    if(in_array($user, $array_data))
    {
        // update here
    }
?>

我还是很困惑,怎么更新呢

是否有人可以帮助我?

您应该使用检查
$user
是否存在,如果存在,它将返回数组索引

$key = array_search($user, $array_data); // Returns 3 i.e array key where $user exists

if ($key !== false) {
    $array_data[$star] = $array_data[$key]; // If key found, set value to $array_data[4]
    unset($array_data[$key]); // Remove the previous data $array_data[3]
}

echo json_encode($array_data);
输出:

{"2":"1","4":"3"}
我认为这段代码可以帮助您解决查询 PHP代码



您想更新
$star
?您只需,
$start={new_value}
为其指定一个新值?检查此项您可能希望从学习数据结构开始。在json中使用这样的代理键很麻烦