2013-05-10 144 views
1

我正在使用此html和javascript将json数据发送到我的php文件。 http://jsfiddle.net/ExpertSystem/9aWNj/如何在php中访问json数组?

如何访问它从那里在PHP回声给出的元素?

东西线沿线的:

$value = json_decode($_POST["newOrder"]) 
echo $value[1]; 

我不知道如何从这个检索数据。

+0

我的代码是在这里 - > jsbin.com/igewiv/1/edit和PHP的服务器上托管 - > top50.zxq.net/fiddle.php。我只是为了能够回显一个选定的元素及其位置,即位置1中的2或任何可能的位置。所以我知道我可以将它们存储在数据库等。 – user1628206 2013-05-10 13:06:18

回答

0

试试这个:

$value = json_decode($_POST["newOrder"], true) 
echo "<pre>"; 
print_r($value); 

注意的第二个参数true,那给你输出数组否则这将是对象。

0

检查php手册。

json_decode返回一个对象作为默认值。使用第二个参数true返回一个数组。

json_decode($_POST["newOrder"], true) 
0

要像我想你可能想那么我建议你把一个真实的json_decode函数在PHP中使用JSON。

这会给你以下几点:

$json = json_decode($data,true); 
$json["sub-values"]["sub thing"]; 
0

为什么到JSON作为发送POST请求的身体吗?做简单:

$.ajax({ 
    url: "<url_to_php_file>", 
    type: "POST", 
    data: { order: JSON.stringify(dataArr) } 
}); 

和服务器端使用:

$value = json_decode($_POST["order"]); 
echo $value[1]; 
1

这里是一个的jsfiddle看到的JavaScript应该如何的情况下,你还是输了: http://jsfiddle.net/9aWNj/3/

这是你的数据由php解码:

`stdClass Object ([order] => Array ([0] => 2 [1] => 3 [2] => 4 [3] => 5 [4] => 6 [5] => 7 [6] => 8 [7] => 9 [8] => 10 [9] => 11 [10] => 1 [11] => 12))` 

要访问它,它会b E:例如:

$order_0=$value->order[0]; 
$order_1=$value->order[1]; 

或者你使用真正的json_decode,它会变成这个样子

$order_0=$value['order'][0]; 
$order_1=$value['order'][1]; 
+0

我试过$ value = json_decode($ _ POST [“newOrder”],true); echo $ order_0 = $ value ['order'] [0];并没有从它的任何输出,这个代码有问题或其他地方的问题? – user1628206 2013-05-10 12:17:49

+0

你无法回声$ order_0 = $ value ['order'] [0];它应该是2行:$ order_0 = $ value ['order'] [0]; echo $ order_0; – CodeBird 2013-05-10 12:38:32

+0

我还没有收到任何输出。我的代码在这里 - > http://jsbin.com/igewiv/1/edit并在php服务器上托管 - > http://top50.zxq.net/fiddle.php。我只是为了能够回显一个选定的元素及其位置,即位置1中的2或任何可能的位置。所以我知道我可以将它们存储在数据库等。 – user1628206 2013-05-10 13:03:51

0

Json_decode返回结果的默认对象,让你需要把第二个参数设置为true阵列。

$ data = json_decode($ _ POST [“newOrder”],false);返回结果为对象

打印对象使用

回声$数据 - >东西;

$ data = json_decode($ _ POST [“newOrder”],true);返回结果作为阵列

用于打印阵列使用

回声$数据[ '东西'];

0

试试这个,它可能有帮助

$FP=fopen(JSON_DIR."JsonArray.txt",'r'); 
$J_ARRAY=fread($FP,filesize(JSON_DIR."JsonArray.txt")); 
$J_ARRAY=json_decode($J_ARRAY,JSON_FORCE_OBJECT);