PHP 以随机顺序输出我的 XML 提要

PHP Output my XML feed in a random order

我的 XML 输出工作正常,但它是最新的日期顺序。如果我能以随机顺序得到它,那就太棒了。我试过使用 shuffle 但我无法让它工作(似乎什么也没发生)。

这是我用来构建 XML 的代码示例。输出是 HTML 和 PHP 来插入变量。

    // Build the Feed
    $feed   = "http://www.reviewswebsite.com/api/consumer-reviews/?username=" . $userName . "&format=xml&reviews_per_page=20&page=" . $pageNumber;
    $xml    = simplexml_load_file($feed);

    for($i = 0; $i < $numberOfForLoops; $i++)
    {
        $reviewer_name                = $xml->reviews->review[$i]->reviewer_name;
        $date_of_work                 = date('l, d m Y' , strtotime($xml->reviews->review[$i]->date_of_work));
        $average_reviewer_rating      = (float)$xml->reviews->review[$i]->average_rating;
    ..
    ?>
    <div><?php  echo $reviewer_name; ?></div>
...

        <?php ;} ?>

@第四只鸟通过这个link帮助我:

我为 Trust-A-Trader 评论创建的最终结果,我将其内置到 Joomla!模块 是。我将尝试在 Joomla! 上免费发布该模块!扩展目录 (JED)。

结束代码是

$feed = "http://www.trustatrader.com/api/consumer-reviews/?username=" . $userName . "&format=xml&reviews_per_page=20&page=" . $pageNumber;
$xml = simplexml_load_file($feed);

    // Count Reviews, if total number of reviews is less than the total shown on page set in module then show the lesser amount to avoid an error.
    $totalNumberOfReviews = count($xml->reviews->review);
    $numberOfForLoops = $totalNumberOfReviews;
    if ($totalNumberOfReviews > $numberOfReviews) {
        $numberOfForLoops = $numberOfReviews;
    }


    // If the module sets the order to random then shuffle array, or else do in latest first date order.
    if ($params->get('Order') == 0) {
        foreach($xml->reviews->review as $val)
            $array[]= $val;

        shuffle($array);
    }


    // Loop through the reviews and output them.
    foreach($array as $val)
    {
        $i = 0;
        if ($i < $numberOfForLoops)
        {
            ?>
            <div class="mod_trust_a_trader_reviews--review g-grid" itemscope itemtype="http://schema.org/Review" itemprop="review" >
                <div class="review g-block size-100" itemprop="reviewBody">
                    <?php echo $val->comments; ?>
                </div>
                <div class="authorBlock g-grid size-100">
                <span class="author g-block size-100" itemprop="author">
                    <?php echo $val->reviewer_name; ?>
                </span>
                </div>
                <div class="score g-block size-100 g-grid">
                    <div class="g-block size-100">
                        <?php starRatingImage($val->average_rating); ?>
                    </div>
                    <div class="g-block size-100 reviewRating">
                        <?php echo '(<span  itemprop="reviewRating">' . $val->average_rating . '</span>)'; ?>
                    </div>
                </div>
            </div>
            <?php
        }

        $i++;
    }

?>