基本上json输出是这个 - 输出来自php。
[{"attr":{"id":"node_2","rel":"default"},"data":"C:","state":"closed"},{"attr":{"id":"node_3","rel":"drive"},"data":"D:","state":"closed"}]
所以因为 rel 等于默认值
{"attr":{"id":"node_2","rel":"default"},"data":"C:","state":"closed"}
我需要从数组中删除它。
我想过也许使用
foreach($arr as $key => &$item) {
if ($value['rel'] == 'default'{
unset($arr[$key]);
但是,由于某种原因,这不起作用。我不知道我的方法是否是最好的方法,或者是否有更好的方法来实现这一目标。我还需要对其进行解码和编码。
你可以
使用 json_encode 和 json_decode 来解析 json,正如 Jesse Bunch 所说。
在我解码您发布的 json 后,它作为对象返回。要调用一个对象,你必须做一些不同的事情。
$arr = json_decode('[{"attr":{"id":"node_2","rel":"default"},"data":"C:","state":"closed"},{"attr":{"id":"node_3","rel":"drive"},"data":"D:","state":"closed"}]');
foreach($arr as $key => $row)
{
if ($row->attr->rel == 'default'){
unset($arr[$key]);
}
}
var_dump($arr);
$arr不再包含默认 rel
在大多数语言中,在循环时改变数组是不受欢迎的。在 PHP 中,没有什么说你不能在循环数组时改变数组。你正在做的事情绝对没问题,可能是最有效的方法。
至于编码和解码,请参阅 json_encode
和 json_decode
。