使用usort进行自定义排序php数组

时间:2015-08-30 13:35:03

标签: php

所以我有Passive,Q,Q2,W,W2,E,E2,R,R2阵列,我想按照我写的顺序。

$SpellTitle = array("Passive", "W", "Q", "Q2", "W2", "R", "E", "E2", "R2");

我读过有关使用usort()的内容,但我真的不明白如何使用它。

UPDATE!

$ SpellTitle是一个从数据库加载的动态数组,因此长度会有所不同,并且会在该数组中随机设置。

2 个答案:

答案 0 :(得分:0)

usort将用户定义的函数作为第二个参数。该函数必须返回小于零,零或大于零的整数值。此函数必须采用两个参数 - 要相互比较的数组值。如果第一个值比第二个值“低”,则函数返回小于零的值,否则大于零。如果值相等,则函数必须返回零。

所以,如果你想创建一个自定义函数来表示整数或浮点值,你可以使用:

function cmp($a, $b) {
    if((float) $a == (float) $b) {
        return 0;
    } else {
        return ((float) $a < (float) $b) ? -1 : 1;
    }
}

答案 1 :(得分:0)

Use PHP asort

  

asort - 对数组进行排序并维护索引关联。

示例:

$SpellTitle = array("Passive", "W", "Q", "Q2", "W2", "R", "E", "E2", "R2");
asort($SpellTitle);
print_r($SpellTitle);

输出:

Array
(
  [6] => E
  [7] => E2
  [0] => Passive
  [2] => Q
  [3] => Q2
  [5] => R
  [8] => R2
  [1] => W
  [4] => W2
)

请注意,也保持了数组索引顺序 希望这有帮助。