Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将非关联数组传递给json_encode()时会发生什么情况?_Php_Arrays_Json - Fatal编程技术网

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对象。它是数组表示,但一些解析器希望根节点是
{}
类型的对象。