一个数组排序问题引发的思考....
一个数组排序问题,要求按照“人名长度”排序,如下:
$students[] ? = ? "胡一";?
$students[] ? = ? "李文文";?
$students[] ? = ? "向魏";?
$students[] ? = ? "欧阳飞飞";?
$students[] ? = ? "黄贝英";
?
几个思路,如下:
?
<?php?
??function cmp($a, $b)
{
????if (strlen($a) == strlen($b)) {
????????return 0;
????}
????return (strlen($a) < strlen($b)) ? -1 : 1;
}
usort($students,"cmp");
foreach ($students as $key => $value) {
????echo "$key: $value<br>";
}
---------思路二
$length = array_map( 'strlen', $students );
array_multisort( $length,SORT_DESC,$students );
print_r($students);
?
性能没做深究,不过当一个方法借鉴我觉得够用了。也权当熟悉php 数组函数了。