如何在响应中返回数组

时间:2011-09-28 22:09:15

标签: php arrays json

我正在尝试在HTTP响应中返回一个数组。我想将数组作为JSON对象返回。我正在做echo json_encode($arr)但我在回复中得不到任何结果。

更新:我正在运行没有json_encode方法的PHP版本。 json_encode是在PHP 5.2中引入的。所以我想问题是如何在不使用json_encode的情况下返回数组?

     $arr = array();
    foreach($_POST['ids'] as $id)
    {
        $arr[$id] = $id;
    }   
    echo json_encode($arr);

    return;

以下是我的数组的内容:

array(18) {
  [156795]=>
  string(6) "156795"
  [156800]=>
  string(6) "156800"
  [4292]=>
  string(4) "4292"
  [796053]=>
  string(6) "796053"
  [660520]=>
  string(6) "660520"
 ...

4 个答案:

答案 0 :(得分:3)

确保在发回JSON时设置正确的MIME类型:

header('Content-Type: application/json');
echo json_encode($arr);

答案 1 :(得分:2)

json_encode()需要PHP 5.2.0或更高版本。确保您的主机没有使用--disable-json标志编译PHP。可以使用phpinfo()函数检查这两个函数。到目前为止您发布的代码对我来说很好。

答案 2 :(得分:0)

json编码应该没有问题。当我将数据泵入数组时,它工作正常。你可以发布一些代码来构建数组吗?您使用的是哪个版本的PHP?

答案 3 :(得分:0)

使用json验证器来确保你的json是正确的

看,我做了这个&它运作良好

 $arr = array();
 $i=0;
    while($i<10)
    {
        $arr[$i] = $i;
        $i++;
    }   
    echo json_encode($arr);

    return;