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中使用灵巧的体系结构
Oct 09 PHP
PHP语法速查表
Jan 02 PHP
php面向对象的方法重载两种版本比较
Sep 08 PHP
将一维或多维的数组连接成一个字符串的php代码
Aug 08 PHP
php读取mysql乱码,用set names XXX解决的原理分享
Dec 29 PHP
php检测apache mod_rewrite模块是否安装的方法
Mar 14 PHP
php生成二维码
Aug 10 PHP
Yii开启片段缓存的方法
Mar 28 PHP
php单例模式的简单实现方法
Jun 10 PHP
php基于数组函数实现关联表的编辑操作示例
Jul 04 PHP
PHP实现与java 通信的插件使用教程
Aug 11 PHP
php利用ZipArchive类操作文件的实例
Jan 21 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
PHP iconv 函数转gb2312的bug解决方法
2009/10/11 PHP
php获取ip的三个属性区别介绍(HTTP_X_FORWARDED_FOR,HTTP_VIA,REMOTE_ADDR)
2012/09/23 PHP
PHP中使用OpenSSL生成证书及加密解密
2017/02/05 PHP
IE中radio 或checkbox的checked属性初始状态下不能选中显示问题
2009/07/25 Javascript
锋利的jQuery 第三章章节总结的例子
2010/03/23 Javascript
JQuery select控件的相关操作实现代码
2012/09/14 Javascript
jQuery父级以及同级元素查找介绍
2013/09/04 Javascript
jQuery客户端分页实例代码
2013/11/18 Javascript
javascript页面上使用动态时间具体实现
2014/03/18 Javascript
一个JavaScript用逗号分割字符串实例
2014/09/22 Javascript
js实现iframe跨页面调用函数的方法
2014/12/13 Javascript
JavaScript实现动态删除列表框值的方法
2015/08/12 Javascript
js图片翻书效果代码分享
2015/08/20 Javascript
浅析jQuery事件之on()方法绑定多个选择器,多个事件
2016/04/27 Javascript
jQuery+ajax实现滚动到页面底部自动加载图文列表效果(类似图片懒加载)
2016/06/07 Javascript
jQuery dataTables与jQuery UI 对话框dialog的使用教程
2016/09/02 Javascript
微信小程序wx.request实现后台数据交互功能分析
2017/11/25 Javascript
vue实现商城上货组件简易版
2017/11/27 Javascript
Vue清除定时器setInterval优化方案分享
2020/07/21 Javascript
vue 遮罩层阻止默认滚动事件操作
2020/07/28 Javascript
python文件和目录操作方法大全(含实例)
2014/03/12 Python
Apache如何部署django项目
2017/05/21 Python
python爬取内容存入Excel实例
2019/02/20 Python
python Web flask 视图内容和模板实现代码
2019/08/23 Python
Python实现投影法分割图像示例(二)
2020/01/17 Python
python使用建议与技巧分享(一)
2020/08/17 Python
2013年员工自我评价范文
2013/12/27 职场文书
管理心得体会
2013/12/28 职场文书
安全生产网格化管理实施方案
2014/03/01 职场文书
学生党员的自我评价范文
2014/03/01 职场文书
元旦晚会感言
2014/03/12 职场文书
电子信息工程专业求职信
2014/06/28 职场文书
党员自我剖析材料(群众路线)
2014/10/06 职场文书
“爱眼护眼,提前预防近视”倡议书3篇
2019/10/30 职场文书
CSS预处理框架——Stylus
2021/04/21 HTML / CSS
python使用XPath解析数据爬取起点小说网数据
2021/04/22 Python