版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/signmem/article/details/82688937
说明
了解 PHP 下数组使用方法
了解函数 json_decode, json_encode 使用方法
php 环境下如何输出 json 格式
前提
PHP 下, 默认不支持直接进行 json 格式定义
PHP 下支持 array 定义
可以通过函数帮助, 把(多维)数组转换成为 json 格式输出
注意, 中文字符需要特殊处理
数组
一维数组定义方法
定义方法
$a= [ 'a' => '123', 'b' => '234' ];
$b=array( 'a' => '123', 'b' => '234' );
print_r ($a);
print_r ($b);
输出效果
Array
(
[a] => 123
[b] => 234
)
Array
(
[a] => 123
[b] => 234
)
多维数组定义方法
定义方法,
$a = array(
'a' => '123',
'b' => array(
'c' => '234',
'd' => '345',
),
'e' => '456',
);
$b = [
'f' => '123',
'g' => [
'h' => '234',
'i' => '345',
],
'j' => '456',
];
输出效果
Array
(
[a] => 123
[b] => Array
(
[c] => 234
[d] => 345
)
[e] => 456
)
Array
(
[f] => 123
[g] => Array
(
[h] => 234
[i] => 345
)
[j] => 456
)
数组叠加方法
定义方法
$c = array();
array_push($c, $a);
array_push($c, $b);
print_r ($c);
输出效果
Array
(
[0] => Array
(
[a] => 123
[b] => Array
(
[c] => 234
[d] => 345
)
[e] => 456
)
[1] => Array
(
[f] => 123
[g] => Array
(
[h] => 234
[i] => 345
)
[j] => 456
)
)
把数组定义为 JSON 格式
定义方法: (注意,带中文输出)
$a = array(
'a' => '123',
'b' => array(
'c' => '234',
'd' => '345',
),
'e' => '中文字符456',
);
$b = [
'f' => '123',
'g' => [
'h' => '234',
'i' => '345',
],
'j' => '中文字符c',
];
$c = array();
array_push($c, $a);
array_push($c, $b);
var_dump(json_encode($c,JSON_UNESCAPED_UNICODE));
输出效果
string(119) "[{"a":"123","b":{"c":"234","d":"345"},"e":"中文字符456"},{"f":"123","g":{"h":"234","i":"345"},"j":"中文字符c"}]"
参考例子
例子:
这里有两个多维数组,数组具有相同的元素 ‘uuid’
把数组转换为 JSON
定义方法
<?php
$a = [
'uuid' => 'c5966c24-7e8d-4e22-b4c8-29a035fec704',
'ipaddr' => '1.1.1.1',
'hostname' => 'test1.google.com',
];
$b = [
'uuid' => '3e7a74b4-75df-41b5-b0f9-88f459b68b3c',
'ipaddr' => '2.2.2.2',
'hostname' => 'test2.google.com',
];
$c = array();
array_push($c, $a);
array_push($c, $b);
$d = [
'uuid' => 'c5966c24-7e8d-4e22-b4c8-29a035fec704',
'user' => 'terry',
'sex' => 'male',
];
$e = [
'uuid' => '3e7a74b4-75df-41b5-b0f9-88f459b68b3c',
'user' => 'mary',
'sex' => 'female',
];
$f = array();
array_push($f, $d);
array_push($f, $e);
$g = json_encode($c,JSON_UNESCAPED_UNICODE);
$h = json_encode($f,JSON_UNESCAPED_UNICODE);
print $g;
print $h;
?>
输出效果
json1
[{"uuid":"c5966c24-7e8d-4e22-b4c8-29a035fec704","ipaddr":"1.1.1.1","hostname":"test1.google.com"},{"uuid":"3e7a74b4-75df-41b5-b0f9-88f459b68b3c","ipaddr":"2.2.2.2","hostname":"test2.google.com"}]
json2
[{"uuid":"c5966c24-7e8d-4e22-b4c8-29a035fec704","user":"terry","sex":"male"},{"uuid":"3e7a74b4-75df-41b5-b0f9-88f459b68b3c","user":"mary","sex":"female"}]
把上述两个数组组合为一个数组
组合方法
foreach(json_decode($g, JSON_UNESCAPED_UNICODE) as $key => $array)
{
$r[$key] = array_merge(json_decode($h, JSON_UNESCAPED_UNICODE)[$key],$array);
}
输出效果, 结合成为一个 json 数据
[{"uuid":"c5966c24-7e8d-4e22-b4c8-29a035fec704","user":"terry","sex":"male","ipaddr":"1.1.1.1","hostname":"test1.google.com"},{"uuid":"3e7a74b4-75df-41b5-b0f9-88f459b68b3c","user":"mary","sex":"female","ipaddr":"2.2.2.2","hostname":"test2.google.com"}]