基本上json输出是-output来自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]);
然而,由于某种原因,这不会起作用。我不知道我的方法是否是最好的方法,或者是否有更好的方法来实现这一目标。 我还需要对其进行解码和编码。
答案 0 :(得分:2)
你可以使用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
答案 1 :(得分:0)
在大多数语言中,在您循环播放数组时改变数组是不受欢迎的。在PHP中,没有任何东西可以说你在循环时不能改变数组。你正在做的事情绝对没问题,也许是最有效的方式。
关于编码和解码,请参阅json_encode
和json_decode
。