0

我目前正在使用 lat.fm api 开发应用程序。

我有一个函数可以从 last.fm 组中提取每周曲目列表。

目的是提取专辑插图并制作“gridview”模板。

下面的代码执行此操作:

public function getWeeklyTrackChartGrid($methodVars) {
        // Check for required variables
        if ( !empty($methodVars['group']) ) {
            $vars = array(
                'method' => 'group.getweeklytrackchart',
                'api_key' => $this->auth->apiKey
            );
            $vars = array_merge($vars, $methodVars);

            if ( $call = $this->apiGetCall($vars) ) {
                $i = 0;


                //shuffle($call->weeklytrackchart->track);

                $loopN = $call->weeklytrackchart->track;


                foreach ($loopN as $track ) {

                    require 'config.php';
                     //if(++$i > $userLimit*2) break;


                     $albumArtS = $tracks['album']['image']['small'] = (string) $track->image[0];
                     $albumArtM = $tracks['album']['image']['small'] = (string) $track->image[1];
                     $albumArtL = $tracks['album']['image']['small'] = (string) $track->image[2];

                     $playCounts = $tracks[$i]['playcount'] = (string) $track->playcount; 

                     ?>


                       <?php if ($playCounts > 1)  { ?>

                       <?php if ($albumArtL)  { ?>

                            <img src="<?php echo $albumArtL; ?>" />

                            <?php } ?>

                       <?php } else { ?>

                       <?php if ($albumArtM)  { ?> 

                            <img src="<?php echo $albumArtM; ?>" />

                            <?php } ?>

                       <?php } ?>



                     <?php if ($albumArtwork == "yes")  { ?>


                        <?php if ($albumArt)  { ?>




                        <?php } }?>



                <?php   $i++;
                }
                return $tracks;
            }
            else {
                return FALSE;
            }
        }
        else {
            // Give a 91 error if incorrect variables are used
            $this->handleError(91, 'You must include a group variable in the call for this method');
            return FALSE;
        }
    }

我想在 foreach 循环上使用 php 函数 shuffle 来随机化曲目,而不是按照 last.fm 给你的顺序将它们拉进去。

如您所见,我没有在上面评论过随机播放功能,因为当我添加此功能时,我收到以下警告:

Warning: shuffle() expects parameter 1 to be array, object given in 

关于可能是什么问题的任何想法?

干杯,丹

4

1 回答 1

0
$loopN = (array) $call->weeklytrackchart->track;
shuffle($loopN);
于 2013-06-18T09:23:06.857 回答