Itunes Search API排序结果“kind”

时间:2014-01-07 01:24:46

标签: php api sorting search itunes

我正在使用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']

1 个答案:

答案 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
    }
}