【问题标题】:PHP SQL JSON manipulationsPHP SQL JSON 操作
【发布时间】:2017-06-02 12:27:29
【问题描述】:

我在我的 SQL DB egz 中有设置:{"group":"622","shop":"541","ext":"pdf;mpg;mp4;mpeg;m3u;url"}

获取参数使用此代码

  $setting = $sql->dbquery("SELECT setting FROM public.table");
  echo json_decode($setting['setting'],true)['ext'];

如何插入新的 val egz: avi 仅当不存在时(短代码)

{"group":"622","shop":"541","ext":"pdf;mpg;mp4;mpeg;m3u;url;avi"}

或删除现有的 val egz:pdf

{"group":"622","shop":"541","ext":"mpg;mp4;mpeg;m3u;url"}

【问题讨论】:

    标签: php sql json


    【解决方案1】:

    您可以为如果不存在添加删除编写两个函数。

    $setting = $sql->dbquery("SELECT setting FROM public.table");
    $ext = json_decode($setting['setting'],true)['ext'];
    
    $ext = add_if_not_exist($ext, 'avi');// avi exist and not adding
    $ext = add_if_not_exist($ext, 'jpg');//adding jpg
    
    $ext = remove_item($ext, 'avi'); //remove avi
    $ext = remove_item($ext, 'png'); //png not exist, so not removed
    
    
    
    function add_if_not_exist($ext, $item) {
        $items = explode(';', $ext);
        if(!in_array($item, $items)) {
            $items[]= $item;
        }
        $ext = implode(';', $items);
        return $ext;
    }
    
    
    function remove_item($ext, $item) {
        $items = explode(';', $ext);
        $key = array_search($item, $items);
        if($key !== false) {
            unset($items[$key]);
        }
        $ext = implode(';', $items);
        return $ext;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-28
      • 1970-01-01
      • 2011-12-25
      • 1970-01-01
      • 2016-11-17
      相关资源
      最近更新 更多