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 存取 MySQL 数据库的一个例子
Oct 09 PHP
生成静态页面的php函数,php爱好者站推荐
Mar 19 PHP
php实现保存submit内容之后禁止刷新
Mar 19 PHP
phpExcel中文帮助手册之常用功能指南
Aug 18 PHP
基于linnux+phantomjs实现生成图片格式的网页快照
Apr 15 PHP
PHP实现QQ登录实例代码
Jan 14 PHP
CodeIgniter生成静态页的方法
May 17 PHP
php版交通银行网银支付接口开发入门教程
Sep 26 PHP
cakephp常见知识点汇总
Feb 24 PHP
PHP实现的下载远程文件类定义与用法示例
Jul 05 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
Jun 13 PHP
thinkPHP框架实现的短信接口验证码功能示例
Jun 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
PHP中执行MYSQL事务解决数据写入不完整等情况
2014/01/07 PHP
在SAE上搭建最新wordpress的方法
2014/12/21 PHP
浅谈使用PHP开发微信支付的流程
2015/10/04 PHP
PHP使用MPDF类生成PDF的方法
2015/12/08 PHP
PHP将页面中点击数量高的链接进行高亮显示的方法
2016/05/30 PHP
浅谈PHP中的Trait使用方法
2019/03/22 PHP
String.prototype实现的一些javascript函数介绍
2013/11/22 Javascript
javascript动态创建及删除元素的方法
2014/12/22 Javascript
原生js页面滚动延迟加载图片
2015/12/20 Javascript
jQuery鼠标悬浮链接弹出跟随图片实例代码
2016/01/08 Javascript
JS中Eval解析JSON字符串的一个小问题
2016/02/21 Javascript
js实现带农历和八字等信息的日历特效
2016/05/16 Javascript
js设置和获取自定义属性的方法
2016/10/20 Javascript
bootstrap输入框组件使用方法详解
2017/01/19 Javascript
BootStrap表单验证 FormValidation 调整反馈图标位置的实例代码
2017/05/17 Javascript
在vue项目中正确使用iconfont的方法
2018/09/28 Javascript
Vue.js样式动态绑定实现小结
2019/01/24 Javascript
layui树形菜单动态遍历的例子
2019/09/23 Javascript
js实现图片跟随鼠标移动效果
2019/10/16 Javascript
python实现超市扫码仪计费
2018/05/30 Python
python使用正则表达式来获取文件名的前缀方法
2018/10/21 Python
Python使用sqlalchemy模块连接数据库操作示例
2019/03/13 Python
ORM Django 终端打印 SQL 语句实现解析
2019/08/09 Python
python处理自动化任务之同时批量修改word里面的内容的方法
2019/08/23 Python
wxpython绘制音频效果
2019/11/18 Python
python——全排列数的生成方式
2020/02/26 Python
Shopee新加坡:东南亚与台湾电商平台
2019/01/25 全球购物
高中生学习总结的自我评价范文
2013/10/13 职场文书
个人收入证明范本
2014/01/12 职场文书
参观接待方案
2014/03/17 职场文书
2015年幼儿园班主任工作总结
2015/05/12 职场文书
酒店温馨提示语
2015/07/14 职场文书
放假通知怎么写
2015/08/18 职场文书
2016小学优秀教师先进事迹材料
2016/02/26 职场文书
Python jiaba库的使用详解
2021/11/23 Python
win11高清晰音频管理器在哪里?win11找不到高清晰音频管理器解决办法
2022/04/08 数码科技