将非关联数组传递给json_encode()时会发生什么?

时间:2016-08-17 06:45:19

标签: php arrays json

我的代码是:

<?php 
    $arr = array();
    array_push($arr,"One","Two","Three");
    print_r($arr);
    echo '<br>';
    echo json_encode($arr);
?>

如您所见,我将非关联数组传递给json_encode()。我得到的输出是

  

数组([0] =&gt;一个[1] =&gt;二个[2] =&gt;三个)
  [ “一”, “二”, “三”]

输出的第二行究竟是什么?如果我们将一个关联数组传递给json_encode(),返回的是一个JSON对象,但是返回的这个数组肯定看起来不像JSON对象。那是什么?

另外,有没有办法使用json_encode()将非关联数组转换为JSON对象?

2 个答案:

答案 0 :(得分:2)

如果您尝试使用正确的对象表示法,请尝试以下操作:

echo json_encode($arr,JSON_FORCE_OBJECT);

输出:

{"0":"One", "1":"Two", "2":"Three"}

请参阅json_encode() options

答案 1 :(得分:1)

您好,您也可以试试这个

echo json_encode((object)$arr);

输出

{"0":"One","1":"Two","2":"Three"}