求教一个数组排序问题 $arr=array('中','中国','中国人','中国人民')怎么按照数组内元素的长度进行排序?? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 function cmp($a,$b) { return mb_strlen($a) - mb_strlen($b);}$arr=array('中','中国','中国人','中国人民');usort($arr,'cmp');echo "<pre>\n";print_r($arr);echo "</pre>"; 自定义的比较函数中用strlen()计算字符串长度也是安全的。 嗯,我还想知道你定义的cmp是啥意思,能否讲解一下思路?? http://cn.php.net/manual/zh/function.usort.php 用一个笨办法,按照从短到长<?php$arr=array('中','中国人','中国','中国人民');$nums=count($arr);for($i=0;$i<$nums;$i++){$len[$i]=strlen($arr[$i]);}//arsort($len);//如果需要从长到短排序请取消这一句的注释,并注释下一个语句。asort($len);print_r($len);echo "<br>";$i=0;foreach($len as $key => $value){ $new[$i]=$arr[$key]; $i++; } print_r($new);?> <?phpfunction sortByLength($arr) { $lens = array(); foreach($arr as $str) { $lens[] = strlen($str); } // 你可以将SORT_ASC 换成 SORT_DESC,看效果 array_multisort($lens, SORT_ASC, $arr); return $arr;}$arr=array('中','中国','中国人','中国人民');var_dump(sortByLength($arr)); [编码转换问题] 向各位高手请教 怎么只见北京招PHP,上海的没一个? 问题很简单,但是我怎么也调不通哦~~帮帮忙~~~~ 怎么得到地址里传来的参数值 菜鸟,关于创建MYSQL表的问题. 小女子 求救!!我怎么得到数据库中倒数第5条 记录 得 id 如何统计同一IP地址的在线或访问用户? 如何用PHP实现字体和背景颜色的渐变??涉及网页颜色问题 网页中的数据传递? mysql 代码执行 extends关键字可继承的类的范围是什么? 火狐浏览器为什么不能用js调用xml
return mb_strlen($a) - mb_strlen($b);
}
$arr=array('中','中国','中国人','中国人民');
usort($arr,'cmp');
echo "<pre>\n";
print_r($arr);
echo "</pre>";
嗯,我还想知道你定义的cmp是啥意思,能否讲解一下思路??
$arr=array('中','中国人','中国','中国人民');
$nums=count($arr);
for($i=0;$i<$nums;$i++)
{
$len[$i]=strlen($arr[$i]);
}//arsort($len);//如果需要从长到短排序请取消这一句的注释,并注释下一个语句。
asort($len);
print_r($len);
echo "<br>";
$i=0;
foreach($len as $key => $value){
$new[$i]=$arr[$key];
$i++;
}
print_r($new);
?>
function sortByLength($arr) {
$lens = array();
foreach($arr as $str) {
$lens[] = strlen($str);
}
// 你可以将SORT_ASC 换成 SORT_DESC,看效果
array_multisort($lens, SORT_ASC, $arr); return $arr;
}$arr=array('中','中国','中国人','中国人民');var_dump(sortByLength($arr));