Php 将非关联数组传递给json_encode()时会发生什么情况?
我的代码是:Php 将非关联数组传递给json_encode()时会发生什么情况?,php,arrays,json,Php,Arrays,Json,我的代码是: <?php $arr = array(); array_push($arr,"One","Two","Three"); print_r($arr); echo '<br>'; echo json_encode($arr); ?> 如您所见,我正在将一个非关联数组传递给json\u encode()。我得到的输出是 数组([0]=>1[1]=>2[2]=>3) [“一”、“二”、“三”] 输出的第二行是什么?如果
<?php
$arr = array();
array_push($arr,"One","Two","Three");
print_r($arr);
echo '<br>';
echo json_encode($arr);
?>
如您所见,我正在将一个非关联数组传递给json\u encode()
。我得到的输出是
数组([0]=>1[1]=>2[2]=>3)[“一”、“二”、“三”] 输出的第二行是什么?如果我们将一个关联数组传递给
json\u encode()
,则返回的是一个json对象,但返回的这个数组显然不像json对象。那是什么呢
另外,是否有一种方法可以使用
JSON\u encode()
将非关联数组转换为JSON对象?如果您试图使用正确的对象表示法,请尝试以下方法:
echo json_encode($arr,JSON_FORCE_OBJECT);
输出:
{"0":"One", "1":"Two", "2":"Three"}
请参阅嗨,您也可以试试这个
echo json_encode((object)$arr);
输出
{"0":"One","1":"Two","2":"Three"}
这是一个简单的数字索引数组。这有时会导致一些JSON解析器出现问题,但它是一个JSON对象。它是数组表示,但一些解析器希望根节点是
{}
类型的对象。