本文实例讲述了PHP数组对象与Json转换操作。分享给大家供大家参考,具体如下:
代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
<?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程序设计有所帮助。
原文链接:https://blog.csdn.net/fujian9544/article/details/89915095