【问题标题】:Itunes Search API sort results by "kind"Itunes Search API 按“种类”排序结果
【发布时间】:2014-01-07 01:24:45
【问题描述】:

我正在使用 iTunes 搜索 API 编写一个 iTunes 搜索应用程序。到目前为止,我的一切工作正常,但这是我遇到的问题。如果您想按特定关键字搜索所有媒体类型,它会以不特定顺序返回结果。您可能会在结果中随机混入电影、播客、歌曲等。据我所知,API 只允许您按最近的发布日期排序。

我想按"kind":key 对结果进行排序,以按媒体类型对它们进行分组。只要它们按媒体类型组合在一起,我不在乎它们的特定顺序。

这是带有简单键值对的 JSON 格式的典型返回的一部分。我已将其设置为返回最大结果,因此我可能有多达 200 个结果,包含 10 种不同的媒体类型,键为 "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']

【问题讨论】:

    标签: php api sorting search itunes


    【解决方案1】:

    您似乎需要构建一个以“种类”为维度的数组。所以是这样的:

    $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
        }
    } 
    

    【讨论】:

    • 谢谢 Mike,这正是我想要的。效果很好。
    猜你喜欢
    • 2015-06-25
    • 2012-08-01
    • 1970-01-01
    • 2018-06-13
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多