首页 > php代码 > php 递归json的类代码

php 递归json的类代码

下面给大家提供一个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;
    }
}
?>


教程链接:http://www.phprm.com/code/58763.html

随意转载~但请保留教程地址★

标签:foreach

相关文章

发表留言