You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP实现XML Feed随机排序失败,求助解决方法

解决XML评论列表随机排序的问题

你遇到的问题我懂——想把默认按日期排序的XML评论改成随机展示,但用shuffle没效果,对吧?看了你的代码,问题出在你直接遍历了SimpleXMLElement里的原始节点集合,shuffle没法直接对这种特殊对象生效。

给你调整一下代码,核心思路是先把所有评论节点提取成普通数组,再打乱顺序,最后遍历这个打乱后的数组:

// 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);

// 第一步:把所有review节点提取到普通数组中
$reviewsArray = [];
foreach ($xml->reviews->review as $review) {
    $reviewsArray[] = $review;
}

// 第二步:打乱数组顺序
shuffle($reviewsArray);

// 第三步:遍历打乱后的数组输出内容
foreach ($reviewsArray as $review) {
    $reviewer_name = $review->reviewer_name;
    $date_of_work = date('l, d m Y', strtotime($review->date_of_work));
    $average_reviewer_rating = (float)$review->average_rating;
    ?>
    <div><?php echo $reviewer_name; ?></div>
    <!-- 这里放你原来的其他输出内容 -->
    <?php
}

为什么之前的shuffle没用?因为$xml->reviews->review是SimpleXMLElement的节点集合,不是普通的PHP数组,shuffle函数只能处理标准数组。先把节点转存到普通数组里,再打乱就没问题了。

内容的提问来源于stack exchange,提问作者Eoin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:29:57