现在有一些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.7k 阅读
2 回答2.5k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
2 回答556 阅读✓ 已解决
1 回答858 阅读✓ 已解决
1 回答664 阅读✓ 已解决
951 阅读