当只有一个数组时,文本文件计数返回为2

时间:2017-07-14 13:35:56

标签: php json file count

当解码的内容返回为count = 2而不是1时,有人可以告诉我吗?

我认为解码数组是否在那里它应该是1的计数,因为它内部没有多个数组对象。

示例:

// Count 1
Array ( [chat_id] => 414 [inserted] => 1500038898 )

// Count 2 
Array ( 
[0] => Array ([chat_id] => 414 [inserted] => 1500038898) 
[1] => Array ([chat_id] => 415 [inserted] => 1500038898) 
)

文本文件内容:

{"chat_id":414,"inserted":1500038898}

代码:

// Get file contents
$fileContents = json_decode(file_get_contents($file), true);

if($fileContents !== NULL){
    // Push decoded contents to temp array
    $decoded_data = $fileContents;
    print_r(count($decoded_data));
}

解码:

Array ( [chat_id] => 414 [inserted] => 1500038898 )

1 个答案:

答案 0 :(得分:3)

Dude,正如我在my first comment中告诉你的那样,它不是JSON中的数组。好的,所以JSON数据不符合您输入的要求。将您的JSON数据更改为:

[{"chat_id":414,"inserted":1500038898}]

这应该会为您1而不是2。以上是单次入场所需的内容。两个记录的示例,如您所希望的可能如下所示:

[{"chat_id":414,"inserted":1500038898}, {"chat_id":415,"inserted":1500038898}]

我希望我能解释清楚。你遗失了[]。它应该是一个对象数组[{}]而不仅仅是一个对象{}