如何删除一个JSON元素?

时间:2019-06-26 09:37:30

标签: javascript php mysql json

如何在PHP中删除JSON元素? 我就是这样添加元素的,但是我不知道如何删除它

PHP Code

public function Savefavorite($supplier, $id_shop, $id_supplier, $favActive)
{
    $four = json_decode(Configuration::get('imp_favorite_'.$id_shop), true); // load
    if (!empty($favActive)) { // if 1 exist
        // ??????? DELETE element ???????
    }else { // if 0 no exist ok next
        $four['Suppliers'][$id_supplier]['supplier'] = $supplier;
    }
    Configuration::updateValue('imp_favorite_'.$id_shop, json_encode($four)); //save
}

Mysql code

{"Suppliers":{"1":{"supplier":"blablabliblou"},"2":{"supplier":"papapipipupi"}}}

2 个答案:

答案 0 :(得分:3)

您可以使用unset进行删除,如下更新您的IF..ELSE

if (!empty($favActive)) { // if 1 exist
    // ??????? DELETE element ???????
    unset($four['Suppliers'][$id_supplier]['supplier']);
}else { // if 0 no exist ok next
    $four['Suppliers'][$id_supplier]['supplier'] = $supplier;
}

OR

您可以使用删除整个索引

unset($four['Suppliers'][$id_supplier]);

答案 1 :(得分:2)

json_decode
将JSON更改为PHP类型(数组或stdClass)。

json_encode
将PHP类型(数组或stdClass)更改为JSON。

在代码中,您可以使用变量:
$four
,您可以使用unset($ element)之类的方法删除元素。 示例:

unset($four['Suppliers'][1]);

它将删除ID = 1的元素。