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获取金书网的书名的实现代码
Jun 11 PHP
.htaccess文件保护实例讲解
Feb 06 PHP
php处理斐波那契数列非递归方法
Feb 04 PHP
php中数字0和空值的区别分析
Jun 05 PHP
php使用ereg验证文件上传的方法
Dec 16 PHP
php实现图片上传、剪切功能
May 07 PHP
PHP实现导出excel数据的类库用法示例
Oct 15 PHP
php基于session锁防止阻塞请求的方法分析
Aug 07 PHP
PHP实现生成数据字典功能示例
May 24 PHP
laravel 获取某个查询的查询SQL语句方法
Oct 12 PHP
laravel model模型处理之修改查询或修改字段时的类型格式案例
Oct 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
PHP高级编程实例:编写守护进程
2014/09/02 PHP
PHP中使用虚代理实现延迟加载技术
2014/11/05 PHP
Yii2.0 Basic代码中路由链接被转义的处理方法
2016/09/21 PHP
php实现36进制与10进制转换功能示例
2017/01/10 PHP
Laravel5.4框架使用socialite实现github登录的方法
2019/03/20 PHP
XP折叠菜单&amp;仿QQ2006菜单
2006/12/16 Javascript
如何让动态插入的javascript脚本代码跑起来。
2007/01/09 Javascript
js自动生成对象的属性示例代码
2013/10/28 Javascript
node.js中的fs.exists方法使用说明
2014/12/17 Javascript
jQuery类选择器用法实例
2014/12/23 Javascript
浅谈JavaScript的事件
2015/02/27 Javascript
jQuery实现高亮显示的方法
2015/03/10 Javascript
jQuery获取checkbox选中的值
2016/01/28 Javascript
JS IOS/iPhone的Safari浏览器不兼容Javascript中的Date()问题如何解决
2016/11/11 Javascript
jQuery移除或禁用html元素点击事件常用方法小结
2017/02/10 Javascript
canvas实现简易的圆环进度条效果
2017/02/28 Javascript
Web纯前端“旭日图”实现元素周期表
2017/03/10 Javascript
JS实现的随机排序功能算法示例
2017/06/09 Javascript
AngularJS 实现点击按钮获取验证码功能实例代码
2017/07/13 Javascript
微信小程序canvas绘制圆角base64图片的实现
2019/08/18 Javascript
Python OpenCV 直方图的计算与显示的方法示例
2018/02/08 Python
Python实现的微信红包提醒功能示例
2019/08/22 Python
python 申请内存空间,用于创建多维数组的实例
2019/12/02 Python
浅析python 通⽤爬⾍和聚焦爬⾍
2020/09/28 Python
初探CSS3中的calc()功能
2015/07/14 HTML / CSS
HTML5实现简单图片上传所遇到的问题及解决办法
2016/01/20 HTML / CSS
GWT (Google Web Toolkit)有哪些主要的原件组成?
2015/06/08 面试题
小学生感恩老师演讲稿
2014/08/28 职场文书
2014年祖国生日寄语
2014/09/19 职场文书
处级领导班子全部召开专题民主生活会情况汇报
2014/09/27 职场文书
盗窃案辩护词
2015/05/21 职场文书
投资入股协议书
2016/03/22 职场文书
Golang 正则匹配效率详解
2021/04/25 Golang
JS ES6异步解决方案
2021/04/29 Javascript
SQL实现LeetCode(178.分数排行)
2021/08/04 MySQL