PHP数组如何降序排列-foreach循环存储值的排序技巧解析

教程大全 2026-02-24 04:20:15 浏览

在PHP中,若要从循环中收集值并按降序存储到数组,可以按照以下步骤操作:

方法1:收集所有值后排序(推荐)

$SourceArray = [3, 1, 4, 2]; // 示例数据$result = []; // 初始化存储数组// 遍历源数组并收集值foreach ($sourceArray as $value) {$result[] = $value; // 将每个值存入结果数组}// 使用rsort()进行降序排序(不保留键)rsort($result);print_r($result);// 输出:Array ( [0] => 4 [1] => 3 [2] => 2 [3] => 1 )

方法2:插入时保持降序(高效但复杂)

适用于需要实时维护有序数组的场景:

PHP如何降序排列
$sourceArray = [3, 1, 4, 2];$result = [];foreach ($sourceArray as $value) {// 使用二分查找确定插入位置$low = 0;$high = count($result) - 1;while ($low <= $high) {$mid = (int)(($low + $high) / 2);if ($result[$mid] > $value) {$low = $mid + 1;} else {$high = $mid - 1;}}// 在$low位置插入值array_splice($result, $low, 0, $value);}print_r($result);// 输出:Array ( [0] => 4 [1] => 3 [2] => 2 [3] => 1 )

关键说明:

完整示例(带数据处理):

$users = [['score' => 85],['score' => 92],['score' => 78]];$scores = [];foreach ($users as $user) {$scores[] = $user['score']; // 提取分数}rsort($scores); // 降序排序print_r($scores); // 输出:[92, 85, 78]

选择方案取决于具体需求:

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐