我正在使用iTunes Search API对iTunes搜索应用进行编码。到目前为止,我的一切工作正常,但这是我遇到的问题。如果要按特定关键字搜索所有媒体类型,则不按特定顺序返回结果。您可能会在结果中随机混合电影,播客,歌曲等。据我所知,API只允许您按最近的发布日期排序。
我想按"kind":
键对结果进行排序,以按媒体类型对其进行分组。只要它们按媒体类型组合在一起,我就不在乎它们的特定顺序。
这是具有简单键值对的JSON格式的典型返回的一部分。我将其设置为返回最大结果,因此我可以使用10种不同的媒体类型获得最多200个结果,密钥为"kind":
{"wrapperType":"track",
"kind":"song",
"artistId":909253,
"collectionId":120954021,
"trackId":120954025,
"artistName":"Jack Johnson",
以下是我的结果数组的一部分:
$iTunes = array();
for($i=0; $i<count($data['results']); $i++) {
$kind = $data['results'][$i]['kind'];
$artistId = $data['results'][$i]['artistId'];
$collectionId = $data['results'][$i]['collectionId'];
$trackId = $data['results'][$i]['trackId'];
$artistName = $data['results'][$i]['artistName'];
$trackName = $data['results'][$i]['trackName'];
$collectionName = $data['results'][$i]['collectionName'];
$artistViewUrl = $data['results'][$i]['artistViewUrl'];
$trackViewUrl = $data['results'][$i]['trackViewUrl'];
$collectionViewUrl = $data['results'][$i]['collectionViewUrl'];
$image100 = $data['results'][$i]['artworkUrl100'];
$collectionPrice = $data['results'][$i]['collectionPrice'];
$previewUrl = $data['results'][$i]['previewUrl'];
我正试图用键的值来分组。我是否创建了另一个数组并迭代$kind = $data['results']
?
答案 0 :(得分:1)
您似乎需要构建一个以'kind'作为维度的数组。所以像这样:
$data_array = array();
for ($i = 0; $i <count($data['results']); $i++) {
$kind = $data['results'][$i]['kind'];
$data_array[$kind][] = $data['results'][$i];
}
然后您可以像这样使用数组:
foreach ($data_array as $kind => $kind_array) {
// echo out any category headers based on $kind
foreach($kind_array as $item) {
// echo out each individual item within this kind group
}
}