***php解析JSON二维数组字符串

客户端的请求体中的数据:[{"msg_id": 1, "msg_status": "HAS_READ" }, { "msg_id": 2, "msg_status": "HAS_READ" }] 是一个二维数组字符串
$json_data = json_decode($GLOBALS[‘HTTP_RAW_POST_DATA‘], true);其实用这一句即可实现JSON二维数组字符串转PHP的二维数组变量,不用自己动态构造二维数组该函数的第二个参数很重要:不加true会以PHP对象输出, 加true输出PHP数组


   /**
     * 根据上传的消息ID集合来批量更新消息的状态
     */
    public function update_status_batch()
    {
        //需要更新的数据
/*        $data = array(
            array(
                ‘msg_id‘ => 1 ,
                ‘msg_status‘ => ‘HAS_READ‘
            ),
            array(
                ‘msg_id‘ => 2 ,
                ‘msg_status‘ => ‘HAS_READ‘
            )
        );*/

        //返回值默认是JSON对象,当第二个可选参数是TRUE的时候,则返回的是数组;如果是二维数组的JSON字符串,这里也会转换为二维数组的PHP变量
        $json_data = json_decode($GLOBALS[‘HTTP_RAW_POST_DATA‘], true);
/*        //元素个数
        //$item_num = count($json_data);
        //定义二维数组
        $array = array();
        foreach($json_data as $item){
            $array_unit = array(
                ‘msg_id‘ => $item->msg_id,
                ‘msg_status‘ => $item->msg_status
            );
            //往二维数组追加元素
            array_push($array,$array_unit);
        }*/

        //更新,返回值是更新所影响的记录条数
        $result = $this->m_user_msg->update_batch($json_data, ‘msg_id‘);
        if(!empty($result)){
            //如果不为空,就返回成功
            $return_data[‘code‘]= ‘100‘;
            $return_data[‘msg‘]= ‘处理成功‘;
            //需要进行字符串转数字处理
            $return_data[‘data‘]= $result;

        }else{
            $return_data[‘code‘]= ‘400‘;
            $return_data[‘msg‘]= ‘处理失败‘;
            $return_data[‘data‘]= $json_data;
        }

        //设置以JSON返回给请求方
        header(‘Content-Type:application/json; charset=utf-8‘);
        //转换为JSON字符串
        echo  stripslashes(json_encode($return_data, JSON_UNESCAPED_UNICODE)) ;

    }
时间: 2024-09-30 08:14:45

***php解析JSON二维数组字符串的相关文章

jquery解析php通过ajax传过来的json二维数组对象

ajax获得php传过来的json二维数组对象,jquery解析 php代码: <?php $news = array( '武汉'=>array(1,2,3), '广州'=>array('rain','shu','fruit'), '北京'=>array('yellow','orange','black'), '上海', '深圳' ); echo json_encode($news); 前台页面 <!DOCTYPE html> <html lang="e

C语言--二维数组,字符串数组,多维数组

#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { // int a[2][3]={ // {1,2,3}, // {4,5,6} // }; // int a[2][3]={1,2,3,4,5,6}; // //打印单个元素 // printf("%d",a[1][1]); // //元素没赋全,默认为0 // int b[2][3]={{1,2,3},{4}}; // /

8.31 二维数组 字符串和指针

指针+1移动了相当于所指向类型的大小的字节 int *s1[100] 移动了4个字节 int (*s2)[100] 移动了400个字节 char *s3 移动了1 个字节 int *s4 移动了4个字节 ***p2如何理解? int *p0 = &i *p0  = i int **p1 = &p0 **p1 = i int ***p2 = &p1 ***p2 = i *p2 = p1的值 **p2 = p0的值 ***p2 = i的值 所以***p2就是p0的值        而p

C语言二维数组字符串的赋值

今天用到了二维数组作为参数传递的程序,通过网上搜索,针对自己遇到的问题做个整理. 1.在被调用函数的形参数组定义可以省略第一维的大小,第二维不可省略,如下: void fun(int a[5][20]); //合法 void fun(int a[][20]); //合法 void fun(int a[5][]); //不合法 void fun(int a[][]); //不合法 将二维数组作为形参时,第一维大小可以省略,第二维不可省略,这是有编译器原理限制的,在内存中按数组排列规则存放(按行存放

二维数组+字符串split+Double包装类 例题

将String s = "1,2;3,4,5;6,7,8" 存放在double类型的二维数组中,使得 d[0][0]=1.0 d[0][1]=2.0 d[1][0]=3.0 d[1][1]=4.0 d[1][2]=5.0 d[2][0]=6.0 d[2][1]=7.0 d[2][2]=8.0 public class IntegerDemo { public static void main(String[] args) { String s = "1,2;3,4,5;6,7

二维数组 字符串数组

字符串数组元素访问:? 1.访问某个字符串:数组名[第?一维下标]? 2.访问某个字符 :数组名[第?一维下标][第?二维下标] 3.多维数组占?用内存 = 元素个数 乘以 单个元素所占空间 创建?一个字符串数组(内容是你周围?一圈?人的姓名),对字符串 (英?文)从?小到?大排序. char name[3][20] = {"chexianpeng" , "liuhuaixuan" , "liyunxiao"}; for (int j = 0;

C 入门 第五节 多维数组 字符串数组

#pragma mark  ----------二维数组----------int main(int argc, const char * argv[]) {/*    1 . 二维数组的本质:将数组作为数组元素的数组,称为数组的数组    2 . 类如:管理一个班4个学生的年龄,将一维数组作为数组元素,存储到另一个数组中    int age[4] = {12,13,14,15};    12,13,14,15    21,22,23,24    31,32,33,34    3 . 为了形象

二维数组(扩展hash数组)以及json,严格模式,字符串的常用api

二维数组 数组中的每一个元素也是数组 ?var arr=[ [1,2,3], [4,5,6], [7,8,9], [1,2,3,4,5,6,7] ...]; 怎么遍历二维数组 var arr=[ [1,2,3], [4,5,6,7], [10,20,30,40,60,80] ]; for(var r=0;r<arr.length;r++){ for(var c=0;c<arr[r].length;c++){ console.log(arr[r][c]); } } 怎么访问二维数组中的元素 ar

jQuery$.each循环遍历详解,各种取值对比,$.each遍历数组、对象、Dom元素、二维数组、双层循坏、类json数据等等

jQuery 遍历函数包括了用于筛选.查找和串联元素的方法. 函数 描述 .add() 将元素添加到匹配元素的集合中. .andSelf() 把堆栈中之前的元素集添加到当前集合中. .children() 获得匹配元素集合中每个元素的所有子元素. .closest() 从元素本身开始,逐级向上级元素匹配,并返回最先匹配的祖先元素. .contents() 获得匹配元素集合中每个元素的子元素,包括文本和注释节点. .each() 对 jQuery 对象进行迭代,为每个匹配元素执行函数. .end(