我在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相同的关联数组?
感谢。
答案 0 :(得分:6)
PHP的json_decode
takes an optional second argument to do this :
assoc
如果为TRUE,则返回的对象将转换为关联数组。
通过阅读文档解决了问题!
$data = json_decode(stripslashes($_GET['data']), true);
// ^^^^^^