现在有一些json格式的数据,需要找到值为{data}的位置,例:
// 情况一
{"Result":{"code":"1","data":"{data}"}}
// 情况二
{"code":'1',"list":"{data}"}
// 情况三
.......
有什么好的办法解决的,请教一下。
粗暴的方法是解成数组然后递归查找
$str1 = '{"Result":{"code":"1","data":"{data}"}}';
$arr = json_decode($str1,true);
echo findInArray($arr,'{data}'); // $arr["Result"]["data"]
// 查找出现位置
function findInArray($arr,$value,&$path='$arr'){
foreach($arr as $key=>$val){
if(is_string($key))$key = '"'.$key.'"';
$newpath = $path.'['.$key.']';
if(is_array($val) && $a = findInArray($val,$value,$newpath)) {
return $a;
}
if($val===$value) return $newpath;
}
}
10 回答11.1k 阅读
1 回答6k 阅读✓ 已解决
1 回答4k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
2 回答2.2k 阅读