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

    以上

     

     

        

  • 相关阅读:
    kvm
    docker及lvs负载
    zookeeper,及k8s基础概念
    zabbix-proxy及ELK
    gitlab及jenkins
    绘图 Matplotlib Numpy Pandas
    Elasticsearch
    Git命令小结
    win黑窗口命令
    Linux基础命令
  • 原文地址:https://www.cnblogs.com/Steven-shi/p/7239897.html
Copyright © 2020-2023  润新知