下面给大家提供一个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;}}?>
相关文章
- 如何在 Go 语言中不使用 for 循环遍历数组或切片
- 血本无归警告!2025年合约爆仓的5大征兆,90%人已中招!
- 比特币交易软件app最新排行 比特币交易所下载十大排行榜
- Yii中表单用法实例详解_php实例
- Python如何实现NumPy数组与JSON的高效互转_通过tolist方法解决不可序列化问题
- PHP获取用户客户端真实IP的解决方案
- 最近接触了Scrapy,多个类(如:pipeline)写在同一个文件内,是否合理?
- C++ std::ranges::starts_with用法 _ 现代C++容器前缀匹配方案【详解】
- golang框架有哪些优点和缺点
- C#如何设置程序图标颜色_C#动态修改任务栏状态图标【UI】
