0

大家好,我有这个字符串 JSON,我用函数 php 对其进行解码json_decode($var,true)

[{"id":"4","name":"Elis"},{"id":"5","name":"Eilbert"}]

像结果一样,我收到了这个数组

Array( [0] => Array ( [id] => 4 [name] => Elis ) 
       [1] => Array ( [id] => 5 [name] => Eilbert ))1

数组末尾的最后一个数字“1”是什么?为什么会有?我不想拥有它,如何删除它?

在 js 上,我传递了一个用 JSON.stringify() 转换的数组,结果就像第一个 json 代码一样。

$user = json_decode($this->input->post('to'),true);
                $conv_user_id = array();
                foreach ($user as $po) {
                    $conv_user_id[] = $po['id'];
                    $conv_user_id[] = $id_user;

                }

                echo print_r($user);

@explosion phill 向我指出,我的 json 字符串是用[]我在 js 中传递的一个数组包裹的,它用 JSON.stringify() 转换,这是错误吗?

4

2 回答 2

4

您在滥用print_r()

echo print_r($user);

如果您想捕获 print_r() 的输出,请使用 return 参数。当此参数设置为 TRUE 时,print_r() 将返回信息而不是打印它。

当返回参数为 TRUE 时,该函数将返回一个字符串。否则,返回值为 TRUE

...当您将 booleanTRUE转换为 string 时,您会得到1.

于 2013-10-01T14:42:56.280 回答
1

了解有关json_decode 的更多信息——解码 JSON 字符串。

示例 使用 json_decode() 的常见错误

<?php

// the following strings are valid JavaScript but not valid JSON

// the name and value must be enclosed in double quotes
// single quotes are not valid 
$bad_json = "{ 'bar': 'baz' }";
json_decode($bad_json); // null

// the name must be enclosed in double quotes
$bad_json = '{ bar: "baz" }';
json_decode($bad_json); // null

// trailing commas are not allowed
$bad_json = '{ bar: "baz", }';
json_decode($bad_json); // null

?>

参考:

于 2013-10-01T14:53:36.253 回答