免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3380 | 回复: 16
打印 上一主题 下一主题

跪求数组排序 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-09-04 11:58 |只看该作者 |倒序浏览
$b=array("1","5","1","3","1");
$a=array("广东","上海","北京","江苏","内蒙古");
$c=array("2","5","4","3","5");


结果:
$b=array("5","3","1","1","1");
$a=array("上海","江苏","广东","北京","内蒙古");
$c=array("5","3","2","4","5");


就是根据b组元素数值倒序排列,然后a 和c 和b 的相应位置也变化。
求代码?php

[ 本帖最后由 sofy 于 2008-9-4 12:46 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2008-09-04 12:03 |只看该作者
结果:
$b=array("5","3","1","1","1");
$a=array("上海","北京","广东","江苏","内蒙古");
$c=array("5","4","2","3","5");


你的结果好像有误吧

论坛徽章:
0
3 [报告]
发表于 2008-09-04 12:44 |只看该作者

hehe 谢谢楼上指正。已经改了

hehe 谢谢楼上指正。已经改了

论坛徽章:
0
4 [报告]
发表于 2008-09-04 14:31 |只看该作者
Array
(
    [0] => 5
    [1] => 3
    [2] => 1
    [3] => 1
    [4] => 1
)
Array
(
    [0] => 上海
    [1] => 江苏
    [2] => 内蒙古
    [3] => 北京
    [4] => 广东
)
Array
(
    [0] => 5
    [1] => 3
    [2] => 5
    [3] => 4
    [4] => 2
)
结果为这个可以吗? 按你说的 降序

[ 本帖最后由 youkuiyuan 于 2008-9-4 14:32 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2008-09-04 14:42 |只看该作者
原帖由 sofy 于 2008-9-4 11:58 发表
$b=array("1","5","1","3","1");
$a=array("广东","上海","北京","江苏","内蒙古");
$c=array("2","5","4","3","5");


结果:
$b=array("5","3","1","1","1");
$a=array("上海","江苏","广东","北京"," ...


刚学PHP没多久,你看这样可以吗?

  1. <?php
  2. $b=array("1", "5", "1", "3", "1");
  3. $a=array("广东", "上海", "北京", "江苏", "内蒙古");
  4. $c=array("2", "5", "4", "3", "5");
  5. for ($i = 1; $i < 5; $i++)
  6. {
  7.         for ($j = 4; $j >= $i; $j--)
  8.         {
  9.                 if ($b[$j]>$b[$j-1])
  10.                 {
  11.                         $tmp = $b[$j-1];
  12.                         $b[$j-1] = $b[$j];
  13.                         $b[$j] = $tmp;

  14.                         $tmp = $a[$j-1];
  15.                         $a[$j-1] = $a[$j];
  16.                         $a[$j] = $tmp;

  17.                         $tmp = $c[$j-1];
  18.                         $c[$j-1] = $c[$j];
  19.                         $c[$j] = $tmp;
  20.                 }
  21.         }

  22. }

  23. echo "The sorted array is :<br>";
  24. for ($i = 0; $i < 5; $i++)
  25. {
  26.         echo "$b[$i]"." ";
  27. }
  28. echo "<br>";
  29. for ($i = 0; $i < 5; $i++)
  30. {
  31.         echo "$a[$i]"." ";
  32. }
  33. echo "<br>";
  34. for ($i = 0; $i < 5; $i++)
  35. {
  36.         echo "$c[$i]"." ";
  37. }
  38. echo "<br>";
  39. ?>

复制代码

排序很简单,就是一个冒泡排序而已。

论坛徽章:
0
6 [报告]
发表于 2008-09-04 17:32 |只看该作者

4楼的很对,怎么写??

4楼的很对,怎么写??代码呢 ??

论坛徽章:
0
7 [报告]
发表于 2008-09-04 17:35 |只看该作者

4楼大哥人呢

4楼大哥人呢

论坛徽章:
0
8 [报告]
发表于 2008-09-04 18:27 |只看该作者

有可能有问题 大家多多指教

<?php
$b=array("1","5","1","3","1");
$a=array("广东","上海","北京","江苏","内蒙古");
$c=array("2","5","4","3","5");
$d=array();
for($i=0;$i<count($b);$i++){
        $d[]=$b[$i]*10+$c[$i];
}
//print_r($d);
$e=array_combine($d,$b);
$f=array_combine($d,$a);
$g=array_combine($d,$c);
//print_r($e);
rsort($d);
foreach ($d as $key => $val) {
                $array_n[$key]=$val;
        }
//print_r($array_n);
$i=0;
foreach($array_n as $key => $value){
                $x[$i]=$e[$value];
                $y[$i]=$f[$value];
                $z[$i]=$g[$value];
                $i++;
        }
?>
print_r 输出这三个数组就可以了!有可能啰嗦!

[ 本帖最后由 youkuiyuan 于 2008-9-4 18:28 编辑 ]

论坛徽章:
0
9 [报告]
发表于 2008-09-04 18:30 |只看该作者
谨以上面的题来写的!有什么不足希望大家多提宝贵意见

论坛徽章:
0
10 [报告]
发表于 2008-09-04 18:38 |只看该作者
php这么多函数 冒泡是数据结构里效率最低的算法
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP