我试图用PHP中的Simple HTML DOM Parser解析DOM。解析的内容是电影,所以我希望得到所有类型,但是当我运行我的代码时,我只得到最后一种类型,而不是全部。我的代码如下所示:
DateTime.ParseExact
如您所见,我将内容作为数组获取。然后在里面我运行另一个foreach循环来获取所有类型的项目,但它只获得最后一个流派项目。我的代码出了什么问题?
答案 0 :(得分:1)
您每次只是覆盖最后一组数据。您需要将其设置为空白,然后每次使用.=
附加它,例如......
$item['genres'] = '';
foreach($data->find('a.movie-genre-item') as $genre) {
$item['genres'] .= $genre->plaintext . ', ';
}
答案 1 :(得分:0)
代码正在保存相同的' $ genre->明文' in $ item with key'流派' 所以相同的键会替换每个循环的值。
foreach($data->find('a.movie-genre-item') as $genre) {
$item['genres'] = $genre->plaintext . ', ';
}
May $ item [' genres]可以是一个关联数组..我的意思是:
foreach($data->find('a.movie-genre-item') as $genre) {
if ( !isset($item[$genre]) ) {
$item[$genre] = array();
}
array_push($item[$genre],$genre->plaintext);
}
答案 2 :(得分:0)
以下是您必须更新的类型代码
// Here is you genre code
$movie_genre='';
foreach($data->find('a.movie-genre-item') as $genre) {
$movie_genre .= $genre->plaintext . ',';
}
// Here you can use rtrim for removing last comma from genre
$item['genres'] = rtrim($movie_genre,',');