免费注册 查看新帖 |

Chinaunix

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

求一个整形数组函数 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-03-28 11:29 |只看该作者 |倒序浏览
数组中的元素是整形。
函数功能:
清除数组中相同元素,并把数组按从小到大排序,间隔","导入字符串中,同时如果元素是连续时比如:
1,2,3,4,5,6用1-6表示
1,3,5,7,9用1-9(单)表示
2,4,6,8用2-8(双)表示
1,3,5,7,8,9,10,11用1-7(单),8-11表示
1,3用1,3表示
1,2用1,2表示
1,2,3,4,5,7,8,9用1-5,7-9表示


数组还可能有很多种情况,不能一一列出,就是想用简单方法表示数组中的元素

[ 本帖最后由 hezuyou 于 2008-3-28 14:38 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2008-03-28 11:40 |只看该作者
我还以为给数组美容呢。。。

论坛徽章:
0
3 [报告]
发表于 2008-03-28 12:40 |只看该作者
清除数组中相同元素,并把数组按从小到大排序,间隔","导入字符串中
上面三个都可以用PHP的函数来解决,
假设数组已清除相同元素和以排列好$n,只写一种情况
$a[0]=$n[0];
for($i=1;$i<count($n);$i++){
if($n[$i]==$n[$i-1]+1)
{$b[count($a)-1]=$n[$i];}
else
{$a[count($a)]=$n[$i];}
}

for($i=0;$i<count($a);$i++){
echo $a[$i]."-".$b[$i].",";
}
至于怎么判断单双,自己想吧,不难~

[ 本帖最后由 cayleung 于 2008-3-28 12:44 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2008-03-28 14:31 |只看该作者
原帖由 cayleung 于 2008-3-28 12:40 发表
清除数组中相同元素,并把数组按从小到大排序,间隔","导入字符串中
上面三个都可以用PHP的函数来解决,
假设数组已清除相同元素和以排列好$n,只写一种情况
$a[0]=$n[0];
for($i=1;$i



这个简单我早就完成了,不过函数要适应所有情况才行,不容易呀!
我想过把数组分解成n个有规律的数组,但是没有想到怎样分解。

论坛徽章:
0
5 [报告]
发表于 2008-03-28 14:48 |只看该作者
自己顶一下

论坛徽章:
0
6 [报告]
发表于 2008-03-28 17:39 |只看该作者
再顶

论坛徽章:
0
7 [报告]
发表于 2008-03-28 18:47 |只看该作者
加多几个else if不久可以判断咯~~

论坛徽章:
0
8 [报告]
发表于 2008-03-31 08:16 |只看该作者
原帖由 cayleung 于 2008-3-28 18:47 发表
加多几个else if不久可以判断咯~~




有意思,要N个elseif才行了

论坛徽章:
0
9 [报告]
发表于 2008-03-31 11:28 |只看该作者
需求有点怪,看起来似乎并不是用简单的方法表示数组中的元素.

论坛徽章:
0
10 [报告]
发表于 2008-03-31 11:36 |只看该作者
原帖由 hiler 于 2008-3-31 11:28 发表
需求有点怪,看起来似乎并不是用简单的方法表示数组中的元素.



我是在做一个课表系统,想把周次字段的周次用简单明了的方式表示,不可能把周次一个一个的列出的,这样不符合常规。
不知道有那位做过课表系统?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP