0

0

php数组转Json的例子

php中文网

php中文网

发布时间:2016-06-08 17:20:31

|

2006人浏览过

|

来源于php中文网

原创

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

数组转json

 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零基础(一日通)
明仔PHP零基础(一日通)

明仔PHP零基础(一日通)教程都是PHP基础,全部带详细注释,能让新接触者很容易看懂,和几个基础例子,包括登陆,数组,函数,分页的详解。

下载

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

$json = ’{“name”:”zhangsan”,”age”:20,”sex”:”nan”}’; 

print_r(json_decode($json,true));

这样的json数据解析后 就会成为下面这样的数组
Array
(
    [name] => zhangsan
    [age] => 20
    [sex] => nan
)

数组转json 中文字符

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速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
java连接字符串方法汇总
java连接字符串方法汇总

本专题整合了java连接字符串教程合集,阅读专题下面的文章了解更多详细操作。

4

2026.02.05

java中fail含义
java中fail含义

本专题整合了java中fail的含义、作用相关内容,阅读专题下面的文章了解更多详细内容。

8

2026.02.05

控制反转和依赖注入区别
控制反转和依赖注入区别

本专题整合了控制反转和依赖注入区别、解释、实现方法相关内容。阅读专题下面的文章了解更多详细教程。

7

2026.02.05

钉钉脑图插图教程合集
钉钉脑图插图教程合集

本专题整合了钉钉脑图怎么插入图片、钉钉脑图怎么用相关教程,阅读专题下面的文章了解更多详细内容。

16

2026.02.05

python截取字符串方法汇总
python截取字符串方法汇总

本专题整合了python截取字符串方法相关合集,阅读专题下面的文章了解更多详细内容。

2

2026.02.05

Java截取字符串方法合集
Java截取字符串方法合集

本专题整合了Java截取字符串方法汇总,阅读专题下面的文章了解更多详细操作教程。

1

2026.02.05

java 抽象方法
java 抽象方法

本专题整合了java抽象方法定义、作用教程等内容,阅读专题下面的文章了解更多详细内容。

2

2026.02.05

Eclipse创建jsp文件教程合集
Eclipse创建jsp文件教程合集

本专题整合了Eclipse创建jsp文件、创建jsp项目等等内容,阅读专题下面的文章了解更多详细教程。

21

2026.02.05

java 字符串转数字
java 字符串转数字

本专题整合了java如何字符串转数字相关内容,阅读专题下面的文章了解更多详细教程。

4

2026.02.05

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP函数之array数组函数视频讲解
PHP函数之array数组函数视频讲解

共76课时 | 26.1万人学习

AngularJS教程
AngularJS教程

共24课时 | 3.4万人学习

CSS3实现按钮特效视频教程
CSS3实现按钮特效视频教程

共15课时 | 3.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

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