php - 如何快速找到一个json数据中的值'{data}'?
黄舟
黄舟 2017-04-11 08:56:31
[PHP讨论组]

现在有一些json格式的数据,需要找到值为{data}的位置,例:

// 情况一
{"Result":{"code":"1","data":"{data}"}}

// 情况二
{"code":'1',"list":"{data}"}

// 情况三
.......

有什么好的办法解决的,请教一下。

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(3)
巴扎黑
    $s='{"Result":{"code":"1","data":"{data}"}}';
    //$s='{"code":1,"list":"{data}"}';
    $res = json_decode($s,1);
    //echo array_search('{data}',$res);
    function get($res,$key){
        foreach($res as $k=>$v){
            if(is_array($v)) {
                return get($v,$key);
            } else {
                if($v == $key) {
                    return $k;
                }
            }
        }
      return null;
    }
    echo get($res,'{data}');//data
PHPz

是后台返回的数据把,叫后台统一数据啊

阿神

粗暴的方法是解成数组然后递归查找

$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;
  }
}
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号