本文目录一览:
- 1、php usort 自定义排序三维数组
- 2、php中各种排序的特点
- 3、PHP usort函数相关问题
- 4、用PHP设计一个函数,要求将数字数组中所有奇数放在左边,0放在中间,偶数放在右边。
- 5、php怎样根据数组的长度来排序?
php usort 自定义排序三维数组
用 array_multisort 函数,此函数可以进行多维排序。例子:
?php
$a =array(100,80,50,10,0);
$b = array("c","f","q","e","z");
array_multisort($a,$b);
var_dump($a);
var_dump($b);
?运行结果:
array(5) { [0]= int(0) [1]= int(10) [2]= int(50) [3]= int(80) [4]= int(100) }
array(5) { [0]= string(1) “z” [1]= string(1) “e” [2]= string(1) “q” [3]= string(1) “f” [4]= string(1) “c” }-phpusort时间复杂度
usort 用在一维数组比较多,多维数组还是使用 array_multisort 好,你可以测试下。
php中各种排序的特点
忽略键名的排序
sort()
rsort()
usort()
保留键名的排序
asort()
arsort()
uasort()
通过键名的排序
ksort()
krsort()
uksort()
按自然数排序
uatsort()
uatcasesort()
随机排序
shuffle()
反向排序给新数组
array_reverse()
东西太多了,只能给你函数名,具体怎麼用请查手册吧
PHP usort函数相关问题
unsort 里面一个是数组,一个是你要对中国数组进行排序的规则
既然是排序那就是比较大小了
0就是表示相等,1 是表示大, -1 表示小,
你改变了0 -1 1 的返回规则,那返回的东西就会发生改变,
在自定义函数中进行比较的就是数组里的两个值,进行比较的话肯定是有复杂度的,但是不一定是n方的复杂度,具体是怎么样的我不知道,但应该是nlog(n) 的复杂度,虽然是这样但是时间也不会消耗很多,计算机的计算大概是每秒 10 的 8 次方,还是很快的-phpusort时间复杂度
用PHP设计一个函数,要求将数字数组中所有奇数放在左边,0放在中间,偶数放在右边。
?php
function sort_nums($arr) {
$new_array = array(0);
sort($arr);
for($n = 0; $n count($arr); $n++) {
if($arr[$n] != 0) {
if($arr[$n] % 2 == 0) {
array_push($new_array, $arr[$n]);
}
else {
array_unshift($new_array, $arr[$n]);
}
}
}
return $new_array;
}
$numbers = array(23, 94, 0, 2, 56, 10, 77, 231, 75, 48);
print_r(sort_nums($numbers));
// 输出 231, 77, 75, 23, 0, 2, 10, 48, 56, 94
?
php怎样根据数组的长度来排序?
usort()函数排序。可根据大小,长度,等自定义排序
?php
function my_sort($a, $b){
if (count($a) == count($b)) return 0;
return (count($a) count($b)) ? -1 : 1;
}
$arr = array(array("Peter"), array("glenn","Cleveland","peter","cleveland"), array("Glenn"));
usort($arr, "my_sort");
print_r ($arr);
//
?