zoukankan      html  css  js  c++  java
  • 浅谈PHP中的数组和JS中的数组

    最近在做前后端对接的时候,遇到一个问题,前端要求返回的数据格式是左边的,但是我通过json_encode返回到的数据格式是右边的   注意:数据格式从"[]"(数组)变成了"{}"(对象)

    google了下,发现:javascript不支持关联数组 , PHP中索引数组转换成json是数组([]),php关联数组转换成json是对象( {} ) ,所以如果是关联数组的话,需要对数组做一些处理才行

    PHP中的数组:索引数组和关联数组

    PHP支持两种数组,一种是只保存"值"(value)的索引数组(indexed array),另一种是保存"名值对"(name/value)的关联数组(associative array)。

    由于javascript不支持关联数组,所以json_encode()只将索引数组(indexed array)转为数组格式,而将关联数组(associative array)转为对象格式。

    例如:

    //1、索引数组
    $arr = Array('one', 'two', 'three');
    echo json_encode($arr);
    
    //返回值:
    ["one","two","three"] 
    //2、关联数组
    $arr = Array('1'=>'one', '2'=>'two', '3'=>'three');
    echo json_encode($arr);
    
    //返回结果:
    {"1":"one","2":"two","3":"three"} 

    因此,如果需要达到图一的结果,需要对我们的数组中的关联数组进行处理(转为索引数组)

    推荐一个函数:

    array_values():返回数组的所有值(非键名)
    $a=array("Name"=>"Bill","Age"=>"60","Country"=>"USA");
    print_r(array_values($a));
    
    //返回结果
    
    Array ( [0] => Bill [1] => 60 [2] => USA )

    最后再用 json_encode处理后就会达到图一的结果。

    以上

     

     

        

  • 相关阅读:
    4、自定义菜单
    3、关注、取消关注 与 关键字回复
    2、自动回复消息
    1、接入公众平台
    java学习备忘录
    vue组件最佳实践
    js拉起或下载app
    angular1.5 Components
    Charlse 使用小记
    2016年终总结
  • 原文地址:https://www.cnblogs.com/Steven-shi/p/7239897.html
Copyright © 2011-2022 走看看