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在XP下IIS和Apache2服务器上的安装
Sep 05 PHP
什么是MVC,好东西啊
May 03 PHP
PHP 登录记住密码实现思路
May 07 PHP
php导出excel格式数据问题
Mar 11 PHP
php中常见的sql攻击正则表达式汇总
Nov 06 PHP
Laravel 5.0 发布 新版本特性详解
Feb 10 PHP
详解WordPress开发中get_header()获取头部函数的用法
Jan 08 PHP
图文详解phpstorm配置Xdebug进行调试PHP教程
Jun 13 PHP
PHP打印输出函数汇总
Aug 28 PHP
Paypal实现循环扣款(订阅)功能
Mar 23 PHP
Laravel框架路由和控制器的绑定操作方法
Jun 12 PHP
记录Yii2框架开发微信公众号遇到的问题及解决方法
Jul 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
成本8450万,票房仅2亿,口碑两极分化,又一部DC电影扑街了
2020/04/09 欧美动漫
php htmlentities和htmlspecialchars 的区别
2008/08/18 PHP
删除无限分类并同时删除它下面的所有子分类的方法
2010/08/08 PHP
php+ajax做仿百度搜索下拉自动提示框(有实例)
2012/08/21 PHP
基于PHP字符串的比较函数strcmp()与strcasecmp()的使用详解
2013/05/15 PHP
php采集文章中的图片获取替换到本地(实现代码)
2013/07/08 PHP
PHP多文件上传类实例
2015/03/07 PHP
深入解析PHP中foreach语句控制数组循环的用法
2015/11/30 PHP
composer.lock文件的作用
2016/02/03 PHP
PHP实现的字符串匹配算法示例【sunday算法】
2017/12/19 PHP
JavaScript flash复制库类 Zero Clipboard
2011/01/17 Javascript
js用typeof方法判断undefined类型
2014/07/15 Javascript
详谈nodejs异步编程
2014/12/04 NodeJs
浅析js绑定事件的常用方法
2016/05/15 Javascript
JS中用childNodes获取子元素换行会产生一个子元素
2016/12/08 Javascript
jquery插件锦集【推荐】
2016/12/16 Javascript
Vue.js划分组件的方法
2017/10/29 Javascript
快速解决bootstrap下拉菜单无法隐藏的问题
2018/08/10 Javascript
浅谈JavaScript_DOM学习篇_图片切换小案例
2019/03/19 Javascript
微信小程序tabBar 返回tabBar不刷新页面
2019/07/25 Javascript
python计算时间差的方法
2015/05/20 Python
python实现kMeans算法
2017/12/21 Python
Pandas GroupBy对象 索引与迭代方法
2018/11/16 Python
python之Flask实现简单登录功能的示例代码
2018/12/24 Python
Python魔法方法功能与用法简介
2019/04/04 Python
Python爬虫:url中带字典列表参数的编码转换方法
2019/08/21 Python
解决python 虚拟环境删除包无法加载的问题
2020/07/13 Python
python实现图像随机裁剪的示例代码
2020/12/10 Python
英国经典球衣网站:Classic Football Shirts
2017/05/20 全球购物
中科软笔试题和面试题
2014/10/07 面试题
Java中会存在内存泄漏吗,请简单描述
2016/12/22 面试题
财务助理岗位职责
2013/11/10 职场文书
关爱女孩行动实施方案
2014/03/13 职场文书
平安建设实施方案
2014/03/19 职场文书
乡领导班子四风问题对照检查材料
2014/09/25 职场文书
win10电脑老是死机怎么办?win10系统老是死机的解决方法
2022/08/05 数码科技