如何删除jsondecode中的特定值

时间:2015-05-16 08:20:10

标签: php mysql yii

My table

我有一个名为 contracters_system 的表我想删除contracter_id中的特定值我该怎么做?

$plansarray = Array ( [0] => 4 [1] => 10 [2] => 47 );
$contractid = '21';


 foreach ($plansarray as $servicesecondarray){

            $servicequery = "select contracterid from contracters_system where planoption_id='$servicesecondarray'";
            $servicequeryresult = Yii::app()->db->createCommand($servicequery)->queryAll();

            $servicequery1 = "select contracterid from contracters_system where planoption_id <> '$servicesecondarray'";
            $servicequeryresult1 = Yii::app()->db->createCommand($servicequery1)->queryAll();


             $stack = json_decode($servicequeryresult[0]['contracterid'], true);
             array_push($stack, $contractid);


            if(empty($stack)){        
               $arraypush[] = $contractid; 
            } else {             
              $arraypush = $stack;
            }


             $finaldecode =  json_encode(array_unique($arraypush));
             if(!empty($finaldecode)){

              $updatequery = "update contracters_system set contracterid = '$finaldecode' where planoption_id='$servicesecondarray' ";
              $updateresult = Yii::app()->db->createCommand($updatequery)->query();

             }



            for($c=0;$c<count($servicequeryresult1);$c++){

              $jsondecode = json_decode($servicequeryresult1[$c]['contracterid']);
              //print_r($jsondecode);
              if(($key = array_search($_GET['id'], json_decode($servicequeryresult1[$c]['contracterid'])) !== false) {
                  unset(json_decode($servicequeryresult1[$c]['contracterid'])[$key]);
                 // echo "test".$key;

                   $updatequery = "update contracters_system set contracterid = '".unset($jsondecode[$key])."' where planoption_id='$servicesecondarray' ";
                   $updateresult = Yii::app()->db->createCommand($updatequery)->query();
              }

            }

我在表格["1","21"]中有 21 的价值。我的预期输出为["1"]

我如何在mysql和php中实现这一点?

1 个答案:

答案 0 :(得分:0)

  1. 读取该字段值$value
  2. 解码$decoded = json_decode($value)
  3. 遍历$decoded数组
  4. 找到值并删除/取消设置
  5. 再次json_encode($updated_array)
  6. 将此字段值更新回数据库