如何在不知道节点号的情况下从PHP中的JSON数组中获取值


How to get value from a JSON array in PHP without knowing the node number?

我收到了下面具有各种权限的JSON数组。如果您不知道publish_actions [status]值在哪个节点,如何检查它?(目前它在[3]中,但可能是任何其他数字)

JSON数组:

Array (
    [data] => Array (
        [0] => Array (
            [permission] => installed
            [status] => granted
        )
        [1] => Array (
            [permission] => public_profile
            [status] => granted
        )
        [2] => Array (
            [permission] => manage_pages
            [status] => granted
        )
        [3] => Array (
            [permission] => publish_actions
            [status] => granted
        )
        [4] => Array (
            [permission] => user_groups
            [status] => granted
        )
    )
)

使用json_decode,然后迭代数组:

$publish_actions_status = '';
$array=json_decode($json_string);
foreach($array['data'] as $node){
    if($node['permission']=='publish_actions'){
        $publish_actions_status = $node['status'];
        break;
    }
}

尝试

foreach($data as $k=>$v) {
  if($v['permission']=='publish_actions'){
    $newarr[]['permission'] = $v['permission'];
    $newarr[]['status'] = $v['status']
  }
}
print_r($newarr);