【发布时间】:2018-01-05 12:32:12
【问题描述】:
我有一个 json 文件,必须循环解析。 我似乎无法成功
JSON:
{"IMD":{"url":"http:\/\/www.google.com","timeOut":1515155361},"cvH":{"url":"http:\/\/www.google.com","timeOut":1515155364}}
PHP:
<?php
$linkyValues="./linky.json";
if (file_exists($linkyValues)) {
$fileStream = fopen($linkyValues, 'r');
$fileValue=json_decode(fread($fileStream, filesize($linkyValues)));
fclose($fileStream);
echo count($fileValue);//Always 1!
for($i=0;$i<count($fileValue);$i++){
$timeout=$fileValue->item($i)->timeOut;
if(time()>=$timeout){
unset($fileValue[$i]);
}
}
$fileStream = fopen($linkyValues, 'w');
fwrite($fileStream, json_encode($fileValue));
fclose($fileStream);
}
?>
我的问题是count($fileValue) 总是 1。
var_dump($fileValue)的输出:
object(stdClass)#2 (2) {
["IMD"]=>
object(stdClass)#1 (2) {
["url"]=>
string(21) "http://www.google.com"
["timeOut"]=>
int(1515155361)
}
["cvH"]=>
object(stdClass)#3 (2) {
["url"]=>
string(21) "http://www.google.com"
["timeOut"]=>
int(1515155364)
}
}
对我来说它看起来像一个数组...
【问题讨论】:
-
var_dump($fileValue)看看你有什么。这不是一个数组。 -
你能进入
if condition吗? -
@TarangP 不。它不是。见3v4l.org/Ae9Bq
-
那里只有 1 个对象 - eval.in/931027
-
从您最近的编辑中,您说它对您来说看起来像一个数组,但看看它,它不是一个数组,而是一系列对象。