• 技术文章 >php教程 >PHP源码

    php 递归json的类代码

    2016-06-08 17:22:28原创1010
    下面给大家提供一个json递归解析类了,希望此例子对各位同学会带来帮助哦,其它费话也不说多了直接上代码
    代码如下 复制代码

    /*
    * @ anthor:QD
    * @ time: 2013-09-27
    */
    class json{

    private $Arr = array(); //传入数组

    //构造器
    public function json($array)
    {
    if(!is_array($array)) return false;
    $this->Arr = $array;
    }
    //解析主函数
    public function MainArr()
    {
    $arr = $this->Arr;
    if($this->TypeArr($arr))
    {
    $json = $this->NumArr($arr);
    }
    else
    {
    $json = $this->IndexArr($arr);
    }
    return $json;

    }
    //解析索引数组
    public function IndexArr($arr)
    {
    $str ="";
    foreach($arr as $k=>$value)
    {
    if(is_array($value))
    {
    if($this->TypeArr($value)) { $sun=$this->NumArr($value);}
    else {$sun=$this->IndexArr($value);}
    if(strpos($sun,"}") || strpos($sun,"]"))
    {
    $str .= """.$k."":".$sun.",";
    }
    else
    {
    $str .= """.$k."":"".$sun."",";
    }
    }
    else
    {
    $str .= """.$k."":"".$value."",";
    }
    }
    $str = "{".trim($str,",")."}";
    return $str;
    }
    //解析数字数组
    public function NumArr($arr)
    {
    $str = "";
    foreach($arr as $value)
    {
    if(is_array($value))
    {
    if($this->TypeArr($value)) { $sun=$this->NumArr($value);}
    else {$sun=$this->IndexArr($value);}
    if(strpos($sun,"}") || strpos($sun,"]"))
    {
    $str .= $sun.",";
    }
    else
    {
    $str .= """.$sun."",";
    }
    }
    else
    {
    $str .= """.$value."",";
    }
    }
    $str = "[".trim($str,",")."]";
    return $str;
    }
    //检验一个数组是不是严格数字索引
    public function TypeArr($arr)
    {
    if(array_values($arr) === $arr) return true;
    return false;
    }

    }
    ?>
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:nbsp quot value Arr str
    上一篇:PHP没有?>结束标记怎么回事 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • php入门教程-留言板程序• PHP根据图片色界在不同位置加水印的方法• 高亮显示搜索结果代码• ajax仿google搜索下拉提示 • 强烈建议大家在学习PHP的时候同时学习SVN使用!
    1/1

    PHP中文网