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处理后就会达到图一的结果。

    以上

     

     

        

  • 相关阅读:
    MySQL创建用户并修改权限
    Jenkins触发项目构建
    dotnet-cnblogs-tool使用与坑
    Jenkins集成Jmeter接口测试(Freestyle Project)
    Jenkins发送邮件没有解析变量
    JMeter + Maven in Jenkins
    Charles&Fiddler 对手机捉包失败原因分析
    Postman 脚本
    Selenium+Chrome浏览器自动加载Flash
    idea上进行远程调试项目步骤纪录
  • 原文地址:https://www.cnblogs.com/Steven-shi/p/7239897.html
Copyright © 2011-2022 走看看