php数组转Json的例子
数组与Json格式其实是非常像了,我们可以利用相关的函数来进行相互转换的,下面来给各位整理一个从mysql读取数据之后再利用php函数转换成json回传,具体如下
数组转Json
<?php
header("Content-Type: text/html; charset=utf-8");
$mydb=mysql_connect("localhost","root","root");
if (!$mydb){
die('Could not connect:'. mysql_error());
}
$db_selected=mysql_select_db("mysql",$mydb);
//$sql = "SELECT * from Person WHERE Lastname='Adams'";
$sql="SELECT * from user";
$result=mysql_query($sql,$mydb);
//print_r(mysql_fetch_array($result));
//处理输出数组格式
//$db1=mysql_query("select * from `tb_info`");
/*
$arr=array();
while($rows=mysql_fetch_array($db1)){
$key=$rows['id']
$arr[$key] = $rows['qucount']
}
*/
/**************************************************************
*
* 使用特定function对数组中所有元素做处理
* @param string &$array 要处理的字符串
* @param string $function 要执行的函数
* @return boolean $apply_to_keys_also 是否也应用到key上
* @access public
*
*************************************************************/
function arrayRecursive(&$array, $function, $apply_to_keys_also = false)
{
static $recursive_counter = 0;
if (++$recursive_counter > 1000) {
die('possible deep recursion attack');
}
foreach ($array as $key => $value) {
if (is_array($value)) {
arrayRecursive($array[$key], $function, $apply_to_keys_also);
} else {
$array[$key] = $function($value);
}
if ($apply_to_keys_also && is_string($key)) {
$new_key = $function($key);
if ($new_key != $key) {
$array[$new_key] = $array[$key];
unset($array[$key]);
}
}
}
$recursive_counter--;
}
/**************************************************************
*
* 将数组转换为JSON字符串(兼容中文)
* @param array $array 要转换的数组
* @return string 转换得到的json字符串
* @access public
*
*************************************************************/
function JSON($array) {
arrayRecursive($array, 'urlencode', true);
$json = json_encode($array);
return urldecode($json);
}
$array = array
(
'Name'=>'希亚',
'Age'=>20
);
/*
$array=array (
0 =>
array (
'icon' =>
array (
'hasPhoto' => '0',
'photoPath' => '/resources/v20/images/boy.png',
),
'age' => '24',
'name' => '男士',
'province' => '北京',
'lottery' => '100元的爱玛电动车代金券',
'mobile' => '',
),
1 =>
array (
'icon' =>
array (
'hasPhoto' => '0',
'photoPath' => '/resources/v20/images/boy.png',
),
'age' => '24',
'name' => '男士',
'province' => '北京',
'lottery' => '100元的爱玛电动车代金券',
'mobile' => '',
),
2 =>
array (
'icon' =>
array (
'hasPhoto' => '0',
'photoPath' => '/resources/v20/images/boy.png',
),
'age' => '25',
'name' => '男士',
'province' => '上海',
'lottery' => '100元的爱玛电动车代金券',
'mobile' => '',
),
3 =>
array (
'icon' =>
array (
'hasPhoto' => '0',
'photoPath' => '/resources/v20/images/boy.png',
),
'age' => '24',
'name' => '男士',
'province' => '北京',
'lottery' => '100元的爱玛电动车代金券',
'mobile' => '186****1046',
),
4 =>
array (
'icon' =>
array (
'hasPhoto' => '0',
'photoPath' => '/resources/v20/images/boy.png',
),
'age' => '24',
'name' => '男士',
'province' => '北京',
'lottery' => '200元的爱玛电动车代金券',
'mobile' => '186****1046',
),
5 =>
array (
'icon' =>
array (
'hasPhoto' => '0',
'photoPath' => '/resources/v20/images/boy.png',
),
'age' => '24',
'name' => '男士',
'province' => '北京',
'lottery' => '100元的爱玛电动车代金券',
'mobile' => '',
),
6 =>
array (
'icon' =>
array (
'hasPhoto' => '0',
'photoPath' => '/resources/v20/images/boy.png',
),
'age' => '24',
'name' => '男士',
'province' => '北京',
'lottery' => '100元的爱玛电动车代金券',
'mobile' => '',
),
7 =>
array (
'icon' =>
array (
'hasPhoto' => '0',
'photoPath' => '/resources/v20/images/boy.png',
),
'age' => '24',
'name' => '男士',
'province' => '北京',
'lottery' => '100元的爱玛电动车代金券',
'mobile' => '',
),
8 =>
array (
'icon' =>
array (
'hasPhoto' => '0',
'photoPath' => '/resources/v20/images/boy.png',
),
'age' => '24',
'name' => '男士',
'province' => '河南',
'lottery' => '100元的爱玛电动车代金券',
'mobile' => '',
),
9 =>
array (
'icon' =>
array (
'hasPhoto' => '0',
'photoPath' => '/resources/v20/images/boy.png',
),
'age' => '24',
'name' => '男士',
'province' => '北京',
'lottery' => '100元的爱玛电动车代金券',
'mobile' => '',
),
10 =>
array (
'icon' =>
array (
'hasPhoto' => '1',
'photoPath' => '/201412/11/11/49/1418269782350A03EA57_c.jpg',
),
'age' => '20',
'name' => '白日做梦',
'province' => '北京',
'lottery' => '100元的爱玛电动车代金券',
'mobile' => '',
),
);
*/
echo JSON($array);json对象转成
普通数组 也就是 Array 的最简单方法还是 用 json_decode() 方法,只需要在后面多写一个参数就可以搞定
json_decode($json,true);
这样就可以将 json 转换成数组形式了,key 保持原来格式
$json = ’{“name”:”zhangsan”,”age”:20,”sex”:”nan”}’;
print_r(json_decode($json,true));
这样的json数据解析后 就会成为下面这样的数组
Array
(
[name] => zhangsan
[age] => 20
[sex] => nan
)
数组转json 中文字符
<?php
$josin=array(
'0'=>array(
'name'=>'四海一家',
'subname'=>'南阳店',
'agv'=>'5',
'add'=>'新街口地铁站E24号',
'tel'=>'13382041088',
),
'1'=>array(
'name'=>'四海二家',
'subname'=>'南阳店',
'agv'=>'5',
'add'=>'新街口地铁站E24号',
'tel'=>'13382041088',
),
'2'=>array(
'name'=>'四海三家',
'subname'=>'南阳店',
'agv'=>'5',
'add'=>'新街口地铁站E24号',
'tel'=>'13382041088',
),
'3'=>array(
'name'=>'四海四家',
'subname'=>'南阳店',
'agv'=>'5',
'add'=>'新街口地铁站E24号',
'tel'=>'13382041088',
),
'4'=>array(
'name'=>'四海五家',
'subname'=>'南阳店',
'agv'=>'5',
'add'=>'新街口地铁站E24号',
'tel'=>'13382041088',
),
);
$k=JSON($josin);
echo $k;
/**************************************************************
*
* 使用特定function对数组中所有元素做处理
* @param string &$array 要处理的字符串
* @param string $function 要执行的函数
* @return boolean $apply_to_keys_also 是否也应用到key上
* @access public
*
*************************************************************/
function arrayRecursive(&$array, $function, $apply_to_keys_also = false)
{
static $recursive_counter = 0;
if (++$recursive_counter > 1000) {
die('possible deep recursion attack');
}
foreach ($array as $key => $value) {
if (is_array($value)) {
arrayRecursive($array[$key], $function, $apply_to_keys_also);
} else {
$array[$key] = $function($value);
}
if ($apply_to_keys_also && is_string($key)) {
$new_key = $function($key);
if ($new_key != $key) {
$array[$new_key] = $array[$key];
unset($array[$key]);
}
}
}
$recursive_counter--;
}
/**************************************************************
*
* 将数组转换为JSON字符串(兼容中文)
* @param array $array 要转换的数组
* @return string 转换得到的json字符串
* @access public
*
*************************************************************/
function JSON($array) {
arrayRecursive($array, 'urlencode', true);
$json = json_encode($array);
return urldecode($json);
}文章地址:http://www.phprm.com/code/82089.html
转载随意^^请带上本文地址!