将php多维数组转换为json格式以在Jquery $ .post中使用

时间:2013-08-25 08:03:48

标签: php json

使用fetchAll(PDO::FETCH_ASSOC)获取此类数组

$array = 
Array
(
    [0] => Array
        (
            [FinalCurrencyRate] => 0.000062
        )
)

需要json_encode

中使用
$.post("__02.php", { 'currency': currency }, function(data, success) {
$('#currency_load').html(data.FinalCurrencyRate);
$('#currency_load0').html(data.FinalCurrencyRate0);
$('#currency_load1').html(data.FinalCurrencyRate1);//and so on
}, "json");

如果只是echo json_encode($array);则不起作用。

需要像这样转换为json格式数组:

$arr = array ('FinalCurrencyRate'=>"0.000062");

要转换为json格式,请编写此类代码

$json_array = "{";
$flag_comma = 0;
foreach($array as $i =>$array_modified) {

if ($flag_comma == 0) {
$json_array .="'FinalCurrencyRate". $i."'=>'". $array_modified[FinalCurrencyRate]. "'";
$flag_comma = 1;
}
else {
$json_array .=", 'FinalCurrencyRate". $i."'=>'". $array_modified[FinalCurrencyRate]. "'";
}

}
$json_array .= "}";

然后echo json_encode($json_array);。只有一个echo json_encode

但是不起作用。

了解代码中存在转换为json格式的错误。请问需要纠正什么?

1 个答案:

答案 0 :(得分:1)

如果我理解正确你只想从阵列返回第一行,那么你只需要这样做

echo json_encode($array[0]);

<强>更新

我想我现在看到你正在尝试做什么,你试图将索引附加到每一行的FinalCurrencyRate键。不需要这样做,你应该做的是将你的javascript代码更改为:

$('#currency_load0').html(data[0].FinalCurrencyRate);
$('#currency_load1').html(data[1].FinalCurrencyRate);//and so on