首页 > php教程 > PHP源码 > 正文

php数组转Json的例子

php中文网
发布: 2016-06-08 17:20:31
原创
1957人浏览过

数组与Json格式其实是非常像了,我们可以利用相关的函数来进行相互转换的,下面来给各位整理一个从mysql读取数据之后再利用php函数转换成json回传,具体如下

<script>ec(2);</script>

数组转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 保持原来格式

立即学习PHP免费学习笔记(深入)”;

$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);
    }
登录后复制

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号