当前位置:首页 > PHP教程 > php数组 > 列表

PHP数组对象与Json转换操作实例分析

发布:smiling 来源: PHP粉丝网  添加日期:2022-01-15 19:33:00 浏览: 评论:0 

这篇文章主要介绍了PHP数组对象与Json转换操作,结合实例形式分析了php数组对象与json相互转换的实现方法及相关操作技巧,需要的朋友可以参考下

本文实例讲述了PHP数组对象与Json转换操作,分享给大家供大家参考,具体如下:

代码

  1. <?php 
  2. //数组转对象 
  3. function arrayToObject($e){ 
  4.   ifgettype($e)!='array' ) return
  5.   foreach($e as $k=>$v){ 
  6.     ifgettype($v)=='array' || getType($v)=='object' ) 
  7.       $e[$k]=(object)arrayToObject($v); 
  8.   } 
  9.   return (object)$e
  10. //对象转数组 
  11. function objectToArray($e){ 
  12.   $e=(array)$e
  13.   foreach($e as $k=>$v){ 
  14.     ifgettype($v)=='resource' ) return
  15.     ifgettype($v)=='object' || gettype($v)=='array' ) 
  16.       $e[$k]=(array)objectToArray($v); 
  17.   } 
  18.   return $e
  19. //对象转数组 
  20. function object_array($array){ 
  21.   if(is_object($array)){ 
  22.     $array = (array)$array
  23.   } 
  24.   if(is_array($array)){ 
  25.     foreach($array as $key=>$value){ 
  26.       $array[$key] = object_array($value); 
  27.     } 
  28.   } 
  29.   return $array
  30. //json到数组 
  31. function simple_json_parser($json){ 
  32.   $json = str_replace("{","",str_replace("}",""$json)); 
  33.   $jsonValue = explode(","$json); 
  34.   $arr = array(); 
  35.   foreach($jsonValue as $v){ 
  36.     $jValue = explode(":"$v); 
  37.     $arr[str_replace('"',"", $jValue[0])] = (str_replace('"', ""$jValue[1])); 
  38.   } 
  39.   return $arr
  40. echo "<br>-------------------------------<br>"
  41. echo "现在的数组<br><br>"
  42. $arr=array
  43.   "name"=>"李小龙"
  44.   "tel"=>"11111111111"
  45.   "age"=>"12"
  46. ); 
  47. var_dump($arr); 
  48. echo "<br>-------------------------------<br>"
  49. echo "<br><br>数组转对象<br><br>"
  50. $obj= arrayToObject($arr); 
  51. var_dump($obj); 
  52. echo "<br><br>输出对象属性<br><br>"
  53. var_dump($obj->name); 
  54. echo "<br>-------------------------------<br>"
  55. echo "<br><br>对象转数组<br><br>"
  56. $arr=object_array($obj); 
  57. var_dump($arr); 
  58. echo "<br><br>输出数组数值<br><br>"
  59. var_dump($arr["name"]); 
  60. echo "<br>-------------------------------<br>"
  61. echo "<br><br>Json到数组<br><br>"
  62. $json ='{"a":"哈哈","b":"我","c":"数","d":"一","e":3,"f":2,"g":1,"h":"别生气了"}'
  63. $arr=simple_json_parser($json); 
  64. var_dump($arr); 
  65. echo "<br>官方换种方法<br>"
  66. echo "对象<br>"
  67. var_dump(json_decode($json)); 
  68. $a=json_decode($json); 
  69. echo "<br>属性:"
  70. echo $a->a; 
  71. echo "<br>数组<br>"
  72. var_dump(json_decode($json,true)); 
  73. echo "<br>-------------------------------<br>"
  74. echo "<br><br>数组到Json<br><br>"
  75. var_dump($arr); 
  76. echo "<br>"
  77. var_dump(json_encode($json, JSON_HEX_APOS)); 

输出

------------------------------

现在的数组

  1. array(3) { ["name"]=> string(9) "李小龙" ["tel"]=> string(11) "11111111111" ["age"]=> string(2) "12" } 
  2. ------------------------------- 

数组转对象

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\"}""

Tags: PHP数组对象 Json转换

分享到: