php数组排序 现有多维数组,我想做个排序,键和值全是数字,要按值和键同时排序,得到结果是,值最大的在前面,值相等的键小的在前面,键和值的对应关不能变 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 arsort($array); usortfunction cmp($a, $b){ if ($a == $b) { return 0; } return ($a < $b) ? -1 : 1;}$a = array(3, 2, 5, 6, 1);usort($a, "cmp");foreach ($a as $key => $value) { echo "$key: $value\n";} arsort()就OK了值从大到小排列,值相同的键从小到大排列 可以试试这个,我用过还可以<?php $mix = array( array("A",10), array("B",5), array("C",100) ); //假设我们要对其数字进行升序排列 function compare($x,$y){ if($x[1] == $y[1]) return 0; elseif($x[1] < $y[1]) return -1; else return 1; } usort($mix,"compare"); echo $mix[0][1]."<br />"; echo $mix[1][1]."<br />"; echo $mix[2][1]; ?> 这是自定义比较函数的排序,排序中进行元素大小比较时,调用用户自定义函数裁决,函数返回-1、0、1表示比较的两个元素的大小关系,能够猜测到0表示相等,-1是小于,1是大于。 arsort()就OK了值从大到小排列,值相同的键从小到大排列 求一个iis下的rewrite规则 什么是singleton模式 wamp5 APACHE 服务启动问题 php 文章系统 有没有PHP 5.3.5 版本的 ZendDebugger.dll ?配置ZendDebugger不成功! php如何实现转帖功能 为什么访问站点PHP文件,总是提示下载 求助:open flash chart为什么不显示图表? sso使用memcache的疑问 微信扫码支付的问题 mysql数据库root账户密码忘记了 寻php缓存压缩代码
{
if ($a == $b) {
return 0;
}
return ($a < $b) ? -1 : 1;
}$a = array(3, 2, 5, 6, 1);usort($a, "cmp");foreach ($a as $key => $value) {
echo "$key: $value\n";
}
值从大到小排列,值相同的键从小到大排列
$mix = array(
array("A",10),
array("B",5),
array("C",100)
);
//假设我们要对其数字进行升序排列
function compare($x,$y){
if($x[1] == $y[1])
return 0;
elseif($x[1] < $y[1])
return -1;
else
return 1;
}
usort($mix,"compare");
echo $mix[0][1]."<br />";
echo $mix[1][1]."<br />";
echo $mix[2][1];
?>
这是自定义比较函数的排序,排序中进行元素大小比较时,调用用户自定义函数裁决,函数返回-1、0、1表示比较的两个元素的大小关系,能够猜测到0表示相等,-1是小于,1是大于。
值从大到小排列,值相同的键从小到大排列