当前位置: 首页> 最新文章列表> 带有负数的数组如何用 rsort 函数正确降序排序?

带有负数的数组如何用 rsort 函数正确降序排序?

gitbox 2025-08-28
<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// 这部分代码与文章内容无关,仅作为示例开头</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"PHP 数组排序示例开始\n"</span></span><span>;
</span><span><span class="hljs-meta">?&gt;</span></span><span>

&lt;hr&gt;

</span><span><span class="hljs-meta">&lt;?php</span></span><span>
<span class="hljs-comment">/**
 * 带有负数的数组如何用 rsort 函数正确降序排序?
 * 
 * 在 PHP 中,rsort() 函数用于对数组进行降序排序。它会直接修改原数组,
 * 并且默认按数值大小进行排序(如果数组元素是数字),或按字符串顺序(如果是字符串)。
 * 
 * 对于包含负数的数组,rsort() 仍然能正常工作,不需要额外处理,因为负数在数值比较时
 * 依然遵循大小顺序,负数会被正确识别并排在正数的后面,从大到小排序。
 * 
 * 示例代码:
 */</span>

</span><span><span class="hljs-variable">$numbers</span></span><span> = [</span><span><span class="hljs-number">3</span></span><span>, -</span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-number">4</span></span><span>, -</span><span><span class="hljs-number">5</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>, -</span><span><span class="hljs-number">3</span></span><span>];

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"排序前的数组:\n"</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$numbers</span></span><span>);

</span><span><span class="hljs-title function_ invoke__">rsort</span></span><span>(</span><span><span class="hljs-variable">$numbers</span></span><span>);  </span><span><span class="hljs-comment">// 直接调用 rsort 进行降序排序</span></span><span>

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"使用 rsort() 排序后的数组(降序):\n"</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$numbers</span></span><span>);

<span class="hljs-comment">/**
 * 输出结果:
 * 排序前的数组:
 * Array
 * (
 *     [0] =&gt; 3
 *     [1] =&gt; -1
 *     [2] =&gt; 4
 *     [3] =&gt; -5
 *     [4] =&gt; 0
 *     [5] =&gt; 2
 *     [6] =&gt; -3
 * )
 * 
 * 使用 rsort() 排序后的数组(降序):
 * Array
 * (
 *     [0] =&gt; 4
 *     [1] =&gt; 3
 *     [2] =&gt; 2
 *     [3] =&gt; 0
 *     [4] =&gt; -1
 *     [5] =&gt; -3
 *     [6] =&gt; -5
 * )
 * 
 * 可以看到,负数依然被正确地排在了后面,且整体降序排列正确。
 * 
 * 注意:
 * - rsort() 默认对数字数组按数值降序排序,字符串数组按字典降序排序。
 * - 如果数组中包含混合类型(数字和字符串),排序可能会有意料之外的行为,
 *   建议先统一类型,或使用自定义排序函数(usort)进行处理。
 */</span>

</span><span><span class="hljs-meta">?&gt;</span></span><span>

</span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// 这部分代码与文章内容无关,仅作为示例结尾</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"PHP 数组排序示例结束\n"</span></span><span>;
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>