2017-02-13 172 views
0
$text_file = implode(array_map(function ($v) { 
    return file_get_contents($v); 
}, glob(__DIR__ . "/files/*"))); 

$jsonStuff = json_decode($text_file, true); 

foreach($jsonStuff['items'] as $val) { 

    $comment = $val['snippet']['topLevelComment']['snippet']['textDisplay']; 

} 

这个脚本工作,如果“文件”文件夹中只包含一个文本文件相当不错,但如果有有多个文件崩溃:警告:()提供的foreach无效参数

Warning: Invalid argument supplied for foreach() 

有谁知道如何改变“foreach”行以获得它的工作?

+0

打印出你的JSON对象,看看它有什么不同。 – Marvin

+0

foreach在数组上工作。如果你不给它一个数组,那么你会得到这样的错误。 $ jsonStuff ['items']总是一个数组吗? – georaldc

+0

“文件”文件夹中的所有文件都采用相同的格式,所以这不成问题。这个脚本单独读取文件没有任何问题,但是当我尝试它们立即读取它崩溃。 – Nero43

回答

0

您可以将foreach更改为类似:

$i = 0; 
foreach($jsonStuff['items'] as $key => $val) { 
    foreach($val as $item){ 
    $comments[$i] = $item['snippet']['topLevelComment']['snippet']['textDisplay']; 
    } 
    $i++; 
} 
相关问题