PHP数组对象与Json转换操作实例分析


Posted in PHP onOctober 22, 2019

本文实例讲述了PHP数组对象与Json转换操作。分享给大家供大家参考,具体如下:

代码

<?php
//数组转对象
function arrayToObject($e){
  if( gettype($e)!='array' ) return;
  foreach($e as $k=>$v){
    if( gettype($v)=='array' || getType($v)=='object' )
      $e[$k]=(object)arrayToObject($v);
  }
  return (object)$e;
}
//对象转数组
function objectToArray($e){
  $e=(array)$e;
  foreach($e as $k=>$v){
    if( gettype($v)=='resource' ) return;
    if( gettype($v)=='object' || gettype($v)=='array' )
      $e[$k]=(array)objectToArray($v);
  }
  return $e;
}
//对象转数组
function object_array($array){
  if(is_object($array)){
    $array = (array)$array;
  }
  if(is_array($array)){
    foreach($array as $key=>$value){
      $array[$key] = object_array($value);
    }
  }
  return $array;
}
//json到数组
function simple_json_parser($json){
  $json = str_replace("{","",str_replace("}","", $json));
  $jsonValue = explode(",", $json);
  $arr = array();
  foreach($jsonValue as $v){
    $jValue = explode(":", $v);
    $arr[str_replace('"',"", $jValue[0])] = (str_replace('"', "", $jValue[1]));
  }
  return $arr;
}
echo "<br>-------------------------------<br>";
echo "现在的数组<br><br>";
$arr=array(
  "name"=>"李小龙",
  "tel"=>"11111111111",
  "age"=>"12",
);
var_dump($arr);
echo "<br>-------------------------------<br>";
echo "<br><br>数组转对象<br><br>";
$obj= arrayToObject($arr);
var_dump($obj);
echo "<br><br>输出对象属性<br><br>";
var_dump($obj->name);
echo "<br>-------------------------------<br>";
echo "<br><br>对象转数组<br><br>";
$arr=object_array($obj);
var_dump($arr);
echo "<br><br>输出数组数值<br><br>";
var_dump($arr["name"]);
echo "<br>-------------------------------<br>";
echo "<br><br>Json到数组<br><br>";
$json ='{"a":"哈哈","b":"我","c":"数","d":"一","e":3,"f":2,"g":1,"h":"别生气了"}';
$arr=simple_json_parser($json);
var_dump($arr);
echo "<br>官方换种方法<br>";
echo "对象<br>";
var_dump(json_decode($json));
$a=json_decode($json);
echo "<br>属性:";
echo $a->a;
echo "<br>数组<br>";
var_dump(json_decode($json,true));
echo "<br>-------------------------------<br>";
echo "<br><br>数组到Json<br><br>";
var_dump($arr);
echo "<br>";
var_dump(json_encode($json, JSON_HEX_APOS));

输出

-------------------------------
现在的数组
array(3) { ["name"]=> string(9) "李小龙" ["tel"]=> string(11) "11111111111" ["age"]=> string(2) "12" }
-------------------------------
数组转对象
object(stdClass)#1 (3) { ["name"]=> string(9) "李小龙" ["tel"]=> string(11) "11111111111" ["age"]=> string(2) "12" }
输出对象属性
string(9) "李小龙"
-------------------------------
对象转数组
array(3) { ["name"]=> string(9) "李小龙" ["tel"]=> string(11) "11111111111" ["age"]=> string(2) "12" }
输出数组数值
string(9) "李小龙"
-------------------------------
Json到数组
array(8) { ["a"]=> string(6) "哈哈" ["b"]=> string(3) "我" ["c"]=> string(3) "数" ["d"]=> string(3) "一" ["e"]=> string(1) "3" ["f"]=> string(1) "2" ["g"]=> string(1) "1" ["h"]=> string(12) "别生气了" }
官方换种方法
对象
object(stdClass)#2 (8) { ["a"]=> string(6) "哈哈" ["b"]=> string(3) "我" ["c"]=> string(3) "数" ["d"]=> string(3) "一" ["e"]=> int(3) ["f"]=> int(2) ["g"]=> int(1) ["h"]=> string(12) "别生气了" }
属性:哈哈
数组
array(8) { ["a"]=> string(6) "哈哈" ["b"]=> string(3) "我" ["c"]=> string(3) "数" ["d"]=> string(3) "一" ["e"]=> int(3) ["f"]=> int(2) ["g"]=> int(1) ["h"]=> string(12) "别生气了" }
-------------------------------
数组到Json
array(8) { ["a"]=> string(6) "哈哈" ["b"]=> string(3) "我" ["c"]=> string(3) "数" ["d"]=> string(3) "一" ["e"]=> string(1) "3" ["f"]=> string(1) "2" ["g"]=> string(1) "1" ["h"]=> string(12) "别生气了" }
string(136) ""{\"a\":\"\u54c8\u54c8\",\"b\":\"\u6211\",\"c\":\"\u6570\",\"d\":\"\u4e00\",\"e\":3,\"f\":2,\"g\":1,\"h\":\"\u522b\u751f\u6c14\u4e86\"}""

PHP 相关文章推荐
逐步提升php框架的性能
Jan 10 PHP
第七章 php自定义函数实现代码
Dec 30 PHP
深入PHP empty(),isset(),is_null()的实例测试详解
Jun 06 PHP
php中文乱码怎么办如何让浏览器自动识别utf-8
Jan 15 PHP
destoon安装出现Internal Server Error的解决方法
Jun 21 PHP
PHP实现的汉字拼音转换和公历农历转换类及使用示例
Jul 01 PHP
ThinkPHP实现二级循环读取的方法
Nov 03 PHP
PHP中iconv函数转码时截断字符问题的解决方法
Jan 21 PHP
php根据日期或时间戳获取星座信息和生肖等信息
Oct 20 PHP
PHP打印输出函数汇总
Aug 28 PHP
PHP 记录访客的浏览信息方法
Jan 29 PHP
PHP排序算法之冒泡排序(Bubble Sort)实现方法详解
Apr 20 PHP
Yii框架where查询用法实例分析
Oct 22 #PHP
Laravel手动返回错误码示例
Oct 22 #PHP
Laravel 6.2 中添加了可调用容器对象的方法
Oct 22 #PHP
浅谈Laravel模板实体转义带来的坑
Oct 22 #PHP
Laravel定时任务的每秒执行代码
Oct 22 #PHP
Laravel框架实现定时Task Scheduling例子
Oct 22 #PHP
laravel 解决强制跳转 https的问题
Oct 22 #PHP
You might like
简单分析ucenter 会员同步登录通信原理
2014/08/25 PHP
浅析php工厂模式
2014/11/25 PHP
如果文字过长,则将过长的部分变成省略号显示
2006/06/26 Javascript
表单的一些基本用法与技巧
2006/07/15 Javascript
用javascript实现分割提取页面所需内容
2007/05/09 Javascript
setTimeout 不断吐食CPU的问题分析
2009/04/01 Javascript
JavaScript 实现模态对话框 源代码大全
2009/05/02 Javascript
Array.prototype 的泛型应用分析
2010/04/30 Javascript
js获取单选框或复选框值及操作
2012/12/18 Javascript
浅谈JavaScript function函数种类
2014/12/29 Javascript
Easyui form combobox省市区三级联动
2016/01/13 Javascript
AngularJS入门教程之数据绑定用法示例
2016/11/01 Javascript
AngularJS压缩JS技巧分析
2016/11/08 Javascript
BootStrapValidator校验方式
2016/12/19 Javascript
JavaScript中关于class的调用方法
2017/11/28 Javascript
JavaScript同源策略和跨域访问实例详解
2018/04/03 Javascript
JS数组实现分类统计实例代码
2018/09/30 Javascript
Vue Cli 3项目使用融云IM实现聊天功能的方法
2019/04/19 Javascript
用js简单提供增删改查接口
2019/05/12 Javascript
vue实现商城秒杀倒计时功能
2019/12/12 Javascript
jQuery实现简单聊天室
2020/02/08 jQuery
JS面向对象编程实现的拖拽功能案例详解
2020/03/03 Javascript
javascript实现扫雷简易版
2020/08/18 Javascript
JS如何调用WebAssembly编译出来的.wasm文件
2020/11/05 Javascript
Js数组扁平化实现方法代码总汇
2020/11/11 Javascript
vue3.0 自适应不同分辨率电脑的操作
2021/02/06 Vue.js
Python实现多行注释的另类方法
2014/08/22 Python
探究数组排序提升Python程序的循环的运行效率的原因
2015/04/01 Python
Python global全局变量函数详解
2018/09/18 Python
python tkinter实现界面切换的示例代码
2019/06/14 Python
使用Python爬虫库requests发送表单数据和JSON数据
2020/01/25 Python
python如何获得list或numpy数组中最大元素对应的索引
2020/11/16 Python
html5 canvas里绘制椭圆并保持线条粗细均匀的技巧
2013/03/25 HTML / CSS
Trina Turk官网:美国时装和泳装品牌
2018/06/10 全球购物
幸福终点站观后感
2015/06/04 职场文书
圣贤教育改变命运观后感
2015/06/16 职场文书