这可能真的很简单,但是它正在踢我的屁股。
我有一个json数组,其中包含ID,类别,标题,得分,评论的大约5,000个视频项。按降序排列。
我正在遍历数组,以基于类别(有10个类别)创建新数组,以供以后遍历。
foreach ($array as $item) { // the original array
$cid=$item['category'];
$chanmov[$cid]['id'][]=$item['id'];
$chanmov[$cid]['title'][]=$item['title'];
$chanmov[$cid]['score'][]=$item['score'];
$chanmov[$cid]['review'][]=$item['review'];
}
稍后,我想遍历类别ID,并拉出该类别视频的列表,包括视频ID,标题,得分,评论。
如果我通过类别ID手动print_r-例如print_r($ chanmov ['9'])我得到的数据数组完全符合预期。
但是,我遇到的问题是如何稍后遍历这些值并提取信息
例如 类别动作
id title score review
1753 - Demolition Man [1993] - 5 - not bad
2123 - Death Wish [1974] - 10 - Awesome
3748 - Point Break [1991] - 6 - pretty good
我已经尝试过(“ $ chid”是每个类别ID)
foreach($chanmov['$chid'] as $movie) {
echo $movie['id']." - ".$movie['title']."<br/>";
}
给出“为foreach()提供了无效的参数”错误。
我尝试了太多的组合,以至于我的头在旋转,我也尝试了while循环(在更改第一个循环以添加计数器之后),但是没有任何效果。
我知道这应该不难...
顺便说一句,我讨厌数组。
衷心感谢任何帮助
答案 0 :(得分:1)
似乎您真的想使您的结构如下:
foreach ($array as $item) { // the original array
$cid=$item['category'];
$chanmov[$cid][]=$item;
}
然后,给定$chid
的最终循环为:
foreach($chanmov[$chid] as $movie) {
echo $movie['id']." - ".$movie['title']."<br/>";
}