如何将这个PHP对象转换为数组?

时间:2014-02-10 15:14:06

标签: javascript php ajax arrays json

我在Javascript中有一个数组,它通过Ajax传递给PHP脚本。

file.js

var params = {};
params["apples"] = "five";
params["oranges"] = "six";
params["pears"] = "nine";
var ajaxData = {data : params};
fetchData(ajaxData);

function fetchData(arg) {
    $.ajaxSetup ({
        cache: false
    });

    request = $.ajax ({
        type: "GET",
        url: "script.php",
        data: arg,
    });


    request.done(function(response){
            $("#somediv").text(response);
    });

    request.fail(function (jqXHR, textStatus, errorThrown){
        // log the error to the console
        console.error(
            "The following error occured: "+
            textStatus, errorThrown
        );
    });
}

script.php

<?php
    $data = json_decode(stripslashes($_GET['data']));
    var_dump($data);
?>

var_dump的结果是:

object(stdClass)#1 (3) { ["apples"]=> string(4) "five" ["oranges"]=> string(3) "six" ["pears"]=> string(4) "nine" }

但是我不想使用对象,我想使用它与使用Javascript中的数据一样(即:能够做到:

$apples = $data["apples"]

有没有办法将这些数据作为数组处理,而不是从一开始就处理对象?如果没有,我如何将我现在拥有的内容转换为与Javascript相同的关联数组?

感谢。

1 个答案:

答案 0 :(得分:6)

PHP的json_decode takes an optional second argument to do this

  

assoc
  如果为TRUE,则返回的对象将转换为关联数组。

通过阅读文档解决了问题!

$data = json_decode(stripslashes($_GET['data']), true);
//                                             ^^^^^^