• 技术文章 >后端开发 >php教程

    php递归json类实例_PHP

    2016-05-31 18:15:55原创557
    本文实例讲述了php递归json类的实现方法。分享给大家供大家参考。

    具体实现代码如下:

    代码如下:

    <?php
    /*
    * @ 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;
    }
    }
    ?>

    希望本文所述对大家的PHP程序设计有所帮助。

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:php 递归 json
    上一篇:Yii实现多按钮保存与提交的方法_PHP 下一篇:页面利用渐进式JPEG来提升用户体验度_PHP
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【腾讯云】年中优惠,「专享618元」优惠券!• PHP是如何存储变量的?zval结构体你了解吗?• php数组应用之比较两个时间的相减排序_php实例• 怎么用Yii框架实现登录日记• 开个新帖,来看图,开喷.解决方案• PHP软件工程师突破成长瓶颈-续(转载)
    1/1

    PHP中文网