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写出自己的BLOG系统 2
Apr 12 PHP
php 解决旧系统 查出所有数据分页的类
Aug 27 PHP
php 在windows下配置虚拟目录的方法介绍
Jun 26 PHP
浅析php学习的路线图
Jul 10 PHP
php判断当前用户已在别处登录的方法
Jan 06 PHP
浅谈PDO的rowCount函数
Jun 18 PHP
yii权限控制的方法(三种方法)
Dec 28 PHP
浅谈PHP Cookie处理函数
Jun 10 PHP
PHP简单检测网址是否能够正常打开的方法
Sep 04 PHP
php版微信发红包接口用法示例
Sep 23 PHP
Laravel 队列使用的实现
Jan 08 PHP
PHP中非常有用却鲜有人知的函数集锦
Aug 17 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
咖啡风味 世界咖啡主要分布分布 咖啡的生长要求
2021/03/06 新手入门
Smarty Foreach 使用说明
2010/03/23 PHP
php smarty 二级分类代码和模版循环例子
2011/06/16 PHP
PHP实现基于mysqli的Model基类完整实例
2016/04/08 PHP
搜索附近的人PHP实现代码
2018/02/11 PHP
php链式操作的实现方式分析
2019/08/12 PHP
如何让页面在打开时自动刷新一次让图片全部显示
2012/12/17 Javascript
Jquery getJSON方法详细分析
2013/12/26 Javascript
使用JS+plupload直接批量上传图片到又拍云
2014/12/01 Javascript
jQuery对象初始化的传参方式
2015/02/26 Javascript
JS留言功能的简单实现案例(推荐)
2016/06/23 Javascript
js中创建对象的几种方式
2017/02/05 Javascript
JS仿JQuery选择器功能
2017/03/08 Javascript
使用Math.max,Math.min获取数组中的最值实例
2017/04/25 Javascript
JavaScript实现的原生态兼容IE6可调可控滚动文字功能详解
2017/09/19 Javascript
详解如何在nuxt中添加proxyTable代理
2018/08/10 Javascript
node.js文件操作系统实例详解
2019/11/05 Javascript
Vue登录拦截 登录后继续跳转指定页面的操作
2020/08/04 Javascript
Vue实现腾讯云点播视频上传功能的实现代码
2020/08/17 Javascript
Python查询阿里巴巴关键字排名的方法
2015/07/08 Python
python开发中range()函数用法实例分析
2015/11/12 Python
Python基础中所出现的异常报错总结
2016/11/19 Python
OpenCV2.3.1+Python2.7.3+Numpy等的配置解析
2018/01/05 Python
PyQt5每天必学之工具提示功能
2018/04/19 Python
python从list列表中选出一个数和其对应的坐标方法
2019/07/20 Python
pycharm内无法import已安装的模块问题解决
2020/02/12 Python
python爬虫爬取淘宝商品比价(附淘宝反爬虫机制解决小办法)
2020/12/03 Python
一款纯css3实现的鼠标经过按钮特效教程
2014/11/09 HTML / CSS
小米官方旗舰店:Xiaomi
2020/08/07 全球购物
商场中秋节广播稿
2014/01/17 职场文书
小学生开学感言
2014/02/28 职场文书
党的群众路线批评与自我批评发言稿
2014/10/16 职场文书
爱晚亭导游词
2015/02/09 职场文书
Vue CLI中模式与环境变量的深入详解
2021/05/30 Vue.js
Pandas搭配lambda组合使用详解
2022/01/22 Python
VUE解决跨域问题Access to XMLHttpRequest at
2022/05/06 Vue.js