数组和json的相互转换

时间:2023-03-08 19:56:41
数组和json的相互转换

json_encode()

<?php

/*****一维数组*********/
//有键
$arr = array(
'a'=>1,
'b'=>2,
'c'=>3,
);
$json = json_encode($arr);
echo($json); //{"a":1,"b":2,"c":3} //无键
$arr = array(1,2,3);
$json = json_encode($arr);
echo($json); //[1,2,3] /*****二维数组*********/
//有键
$arr = array(
'a' => array('id'=>1, 'xuefei'=>"100" ),
'b' => array('id'=>2, 'xuefei'=>"200" ),
'c' => array('id'=>3, 'xuefei'=>"300" ),
);
$json = json_encode($arr);
echo($json); //{"a":{"id":1,"xuefei":"100"},"b":{"id":2,"xuefei":"200"},"c":{"id":3,"xuefei":"300"}} //无键
$arr = array(
array('id'=>1, 'xuefei'=>"100" ),
array('id'=>2, 'xuefei'=>"200" ),
array('id'=>3, 'xuefei'=>"300" ),
);
$json = json_encode($arr);
echo($json); //[{"id":1,"xuefei":"100"},{"id":2,"xuefei":"200"},{"id":3,"xuefei":"300"}] ?>

json_decode

<?php

/*****一维json*********/
//有键
$json = '{"a":1,"b":2,"c":3}'; //不加key的话输出null
$arr = json_decode($json);
var_dump($arr);
/*
输出:
object(stdClass)[1]
public 'a' => int 1
public 'b' => int 2
public 'c' => int 3
*/ //无键
$json = '["a","b","c"]'; //加key的话输出null
$arr = json_decode($json);
var_dump($arr);
/*
输出:
array (size=3)
0 => string 'a' (length=1)
1 => string 'b' (length=1)
2 => string 'c' (length=1)
*/ /*****二维json*********/
//有键
$json = '{"a":{"id":1,"xuefei":"100"},"b":{"id":2,"xuefei":"200"},"c":{"id":3,"xuefei":"300"}}';
$arr = json_decode($json,true);
var_dump($arr);
/*
输出:
array (size=3)
'a' =>
array (size=2)
'id' => int 1
'xuefei' => string '100' (length=3)
'b' =>
array (size=2)
'id' => int 2
'xuefei' => string '200' (length=3)
'c' =>
array (size=2)
'id' => int 3
'xuefei' => string '300' (length=3)
*/ //无键
$json = '[{"id":1,"xuefei":"100"},{"id":2,"xuefei":"200"},{"id":3,"xuefei":"300"}]';
$arr = json_decode($json,true);
var_dump($arr);
/*
输出:
array (size=3)
0 =>
array (size=2)
'id' => int 1
'xuefei' => string '100' (length=3)
1 =>
array (size=2)
'id' => int 2
'xuefei' => string '200' (length=3)
2 =>
array (size=2)
'id' => int 3
'xuefei' => string '300' (length=3)
*/ ?>