如我想让
$arr = array(
"2bbbbbbbbbbbbbbbb",
"3aaaaaaaaaaaaaaaa",
"1ccccccccccccccccccc",
"2ddddddddddddxyz",
"2dffffffffff",
"2daaaaf",
"1fgfgfg"
);
变成:
$arr = array(
"1fgfgfg",
"1ccccccccccccccccccc",
"2daaaaf",
"2dffffffffff",
"2ddddddddddddxyz",
"2bbbbbbbbbbbbbbbb",
"3aaaaaaaaaaaaaaaa"
);如何实现,在线付分子
$arr = array(
"2bbbbbbbbbbbbbbbb",
"3aaaaaaaaaaaaaaaa",
"1ccccccccccccccccccc",
"2ddddddddddddxyz",
"2dffffffffff",
"2daaaaf",
"1fgfgfg"
);
变成:
$arr = array(
"1fgfgfg",
"1ccccccccccccccccccc",
"2daaaaf",
"2dffffffffff",
"2ddddddddddddxyz",
"2bbbbbbbbbbbbbbbb",
"3aaaaaaaaaaaaaaaa"
);如何实现,在线付分子
if ($a == $b) return 0;//不懂处二(return 0):我想让比较相同的逆向排序,该怎样表达?
// 如果a=b,返回0, 有何问题?
return ($a < $b) ? -1 : 1;//不懂处一:此处是何意思? // 如果a<b,返回-1, 否则返回1 (已排除a=b,所以是a>b时返回1)
}
把
$arr = array(
"2bbbbbbbbbbbbbbbb",
"3aaaaaaaaaaaaaaaa",
"1ccccccccccccccccccc",
"2ddddddddddddxyz",
"2dffffffffff",
"2daaaaf",
"1fgfgfg"
);
变成:
$arr = array(
"1fgfgfg",
"1ccccccccccccccccccc",
"2daaaaf",
"2dffffffffff",
"2ddddddddddddxyz",
"2bbbbbbbbbbbbbbbb",
"3aaaaaaaaaaaaaaaa"
);
主要是参照数例前面的1、2、3排序。数相同(如都是2)的,则逆向排。
回调函数可能的返回值是
0 不做操作
-1 将$a所在单元先前移动
1 将$b所在单元先前移动也就是说当$a>$b时,返回1,就是做升序排列;返回-1,就是做降序排列究竟是哪些数组元素被传入了,你可以查看一下
function cmp ($a, $b) {
echo "a=$a b=$b<br>";
if ($a == $b) return 0;
return ($a < $b) ? -1 : 1;
}
$arr = array(
"2bbbbbbbbbbbbbbbb",
"3aaaaaaaaaaaaaaaa",
"1ccccccccccccccccccc",
"2ddddddddddddxyz",
"2dffffffffff",
"2daaaaf",
"1fgfgfg"
);
变成:
$arr = array(
"1fgfgfg",
"1ccccccccccccccccccc",
"2daaaaf",
"2dffffffffff",
"2ddddddddddddxyz",
"2bbbbbbbbbbbbbbbb",
"3aaaaaaaaaaaaaaaa"
);
主要是参照数例前面的1、2、3排序。数相同的,则逆向排。
<?php
$arr = array(
"2bbbbbbbbbbbbbbbb",
"3aaaaaaaaaaaaaaaa",
"1ccccccccccccccccccc",
"2ddddddddddddxyz",
"2dffffffffff",
"2daaaaf",
"1fgfgfg"
);function cmp ($a, $b) {
if ($a[0] == $b[0]) {
if($a[1] == $b[1]) return 0;
return $a[1] > $b[1] ? -1 : 1;
}
return ($a < $b) ? -1 : 1;
}usort ($arr, "cmp");
echo join("<br>", $arr);
?>
$arr = array(
"2bbbbbbbbbbbbbbbb",
"3aaaaaaaaaaaaaaaa",
"1ccccccccccccccccccc",
"2ddddddddddddxyz",
"2dffffffffff",
"2daaaaf",
"1fgfgfg",
"1asas" //此处再增添一个单元的话,则得出
);则得出:Array
(
[0] => 1fgfgfg
[1] => 1ccccccccccccccccccc
[2] => 1asas //此处又出现错误!原本希望它排在第一位
[3] => 2daaaaf
[4] => 2ddddddddddddxyz
[5] => 2dffffffffff
[6] => 2bbbbbbbbbbbbbbbb
[7] => 3aaaaaaaaaaaaaaaa
)仍未得出想要和结果
------------------
[0] => 1fgfgfg
[1] => 1ccccccccccccccccccc
[2] => 1asas //此处又出现错误!原本希望它排在第一位---------------------------------------------------
It suits your request, don't it ?