数组排序(急) 怎么让一个一维数组先按元素值排序,然后再按键值排序呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 先asort(),再对不满意的遍历调整。。 回:kingerq(多菜鸟) 怎么调整,交换元素的位置? 给你写个最简单的冒泡排序a[]=array(1=>23,2=>45,....)一共10个元素for(i:=1;i<10;i++){ for(j:=i+1;j<=10;j++) { if(a[i]<a[j]) //中间比较的运算符决定了从大到小还是从小到大 { 交换a[i]和a[j]的值; } }}print_r(a); <?php$a=array(1=>23,2=>45,3=>15,4=>155,5=>15,6=>115,7=>15);//一共10个元素for($i=1;$i<10;$i++){ for($j=$i+1;$j<=10;$j++) { if($a[$i]<$a[$j]) //中间比较的运算符决定了从大到小还是从小到大 { $t=$a[$i]; $a[$i]=$a[$j]; $a[$j]=$t; //交换a[i]和a[j]的值; } }}print_r($a);?> 冒泡排序网上很多的。function _sort($arr){ $tmp = ""; $count = count($arr); for ($i=0;$i<$count;$i++) { for ($j=$count-1;$j>$i;$j--) { if ($arr[$j-1] > $arr[$j]) { $tmp = $arr[$j]; $arr[$j] = $arr[$j-1]; $arr[$j-1] = $tmp; } } } return $arr;} <?phpfunction paixu($n){ if (empty($n) || !is_array($n)) { return false; } $len = count($n); if ($len == 1) { return $n; } for ($i=0; $i<$len; $i++) { $key = $n[$i]; for ($j=$i+1; $j<$len; $j++) { if ($n[$j] < $key) { $temp = $key; $key = $n[$j]; $n[$j]= $temp; } } $n[$i] = $key; } return $n;}$a=array(23,45,15,155,15,115,15);print_r (paixu($a)); ?>Array ( [0] => 15 [1] => 15 [2] => 15 [3] => 23 [4] => 45 [5] => 115 [6] => 155 ) 数组加索引抛出错误,如果是单纯的数字当然是asort()比较快解决,但如果是array("zz23","zg45","zf15","zl155","zz15","zz115","zz15")这样的数组还能用asort吗? 我只是随手写的,上面程序并没有调试。不保证正确。_sort去掉数组中的索引正确的,下面这个随手写的。 求相关内容的思路,有代码最好。 谁知道php 写webservice服务器端? 站内搜索 为什么这两总查询条件提交方式的到的返回结果不一样 PHP输出xml,请问哪里错误了,大家帮帮忙~ zend core是什么东西?好像是收费的? php服务器配置 网站子模块上传后影响原先的界面显示 莫名其妙的问题 Linux下的Apache+php怎样连接windows下的Microsoft SQL Server2000呀! session问题,请关照 rewrite重定位问题(急) 高分求助如何用curl提交COOKIE
怎么调整,交换元素的位置?
a[]=array(1=>23,2=>45,....)一共10个元素
for(i:=1;i<10;i++)
{
for(j:=i+1;j<=10;j++)
{
if(a[i]<a[j]) //中间比较的运算符决定了从大到小还是从小到大
{
交换a[i]和a[j]的值;
}
}
}
print_r(a);
$a=array(1=>23,2=>45,3=>15,4=>155,5=>15,6=>115,7=>15);//一共10个元素
for($i=1;$i<10;$i++)
{
for($j=$i+1;$j<=10;$j++)
{
if($a[$i]<$a[$j]) //中间比较的运算符决定了从大到小还是从小到大
{
$t=$a[$i];
$a[$i]=$a[$j];
$a[$j]=$t;
//交换a[i]和a[j]的值;
}
}
}
print_r($a);
?>
function _sort($arr)
{
$tmp = "";
$count = count($arr);
for ($i=0;$i<$count;$i++)
{
for ($j=$count-1;$j>$i;$j--)
{
if ($arr[$j-1] > $arr[$j])
{
$tmp = $arr[$j];
$arr[$j] = $arr[$j-1];
$arr[$j-1] = $tmp;
}
}
}
return $arr;
}
function paixu($n)
{
if (empty($n) || !is_array($n)) {
return false;
}
$len = count($n);
if ($len == 1) {
return $n;
}
for ($i=0; $i<$len; $i++) {
$key = $n[$i];
for ($j=$i+1; $j<$len; $j++) {
if ($n[$j] < $key) {
$temp = $key;
$key = $n[$j];
$n[$j]= $temp;
}
}
$n[$i] = $key;
}
return $n;
}
$a=array(23,45,15,155,15,115,15);
print_r (paixu($a));
?>
Array ( [0] => 15 [1] => 15 [2] => 15 [3] => 23 [4] => 45 [5] => 115 [6] => 155 )
数组加索引抛出错误,如果是单纯的数字当然是asort()比较快解决,但如果是array("zz23","zg45","zf15","zl155","zz15","zz115","zz15")这样的数组还能用asort吗?
_sort去掉数组中的索引正确的,下面这个随手写的。