仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 956|回复: 19
打印 上一主题 下一主题

[学习教程] PHP网页编程之PHP中数组元素升序、降序及从头排序的函...

[复制链接]
精灵巫婆 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-4 00:00:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
你的确对PHP有兴趣,那么选择教材也是很重要的。   在PHP数组进修摘录局部懂得到最根基的PHP数组的创立和数组元素的显示。需求深切进修下PHP数组的相干操作。起首接触的就是数组元素的升序、降序的排序成绩。

1,疾速创立数组的函数range()

好比range()函数可以疾速创立从1到9的数字数组:


<?php
$numbers=range(1,9);
echo $numbers[1];
?>


固然,利用range(9,1)则创立了9到1的数字数组。同时,range()还可以创立从a到z 的字符数组:


<?php
$numbers=range(a,z);
foreach ($numbers as $mychrs)
    echo $mychrs." ";
?>


利用字符数组时注重巨细写,好比range(A,z)和range(a,Z)是纷歧样的。

range()函数还具有第三个参数,该参数的感化是设定步长,好比range(1,9,3)创立的数组元素是:1、4、7

2,PHP中惯例数组的排序

普通数组中的各元素均以字符或数字体现的,所以可对数组元素停止升序分列,该功效函数为sort()。好比:


<?php
$people=array('name','sex','nation','birth');
foreach ($people as $mychrs)
    echo $mychrs." ";
sort($people);
echo "<br />---排序后---<br />";
foreach ($people as $mychrs)
    echo $mychrs." ";
?>


升序排序后的数组元素显示为 birth name nation sex,固然,sort()函数是辨别字母巨细写的(字母从大到小的按次是:A…Z…a…z)

Sort()函数还具有第二参数,用来讲明升序的划定规矩是用来对照数字仍是字符串的。好比:


<?php
echo "---按数字升序排序---<br />";
$num2=array('26','3',);
sort($num2,SORT_NUMERIC);
foreach ($num2 as $mychrs)
    echo $mychrs." ";

echo "<br />---按字符升序排序---<br />";
$num3=array('26','3');
sort($num3,SORT_STRING);
foreach ($num3 as $mychrs)
    echo $mychrs." ";
?>


SORT_NUMERIC和SORT_STRING用来声明按数字或字符的升序分列。假如依照数字升序分列是:3,26;但假如依照字符升序分列则是:26,3了。

PHP中除升序函数之外,还有降序或称反向分列的函数,就是rsort()函数,好比:


$num1=range(1,9);
rsort($num1);


这里其实就相当于range(9,1)

3,PHP中联系关系数组的排序

PHP除撑持数字索引数组之外,还撑持相干数组。好比以下数组就是一个相干(联系关系)数组


$peoples=array('xm'=>'name','xb'=>'sex','mz'=>'nation','cs'=>'birth');


利用sort($peoples)默许便是依照元素界说值的升序排序,在联系关系数组中可以使用asort()函数暗示,联系关系数组中最次要的则是可依照关头字(如xm、xb、mz等)的升序排序,该办法是用函数ksort()函数。


<?php
$peoples=array('xm'=>'name','xb'=>'sex','mz'=>'nation','cs'=>'birth');
foreach ($peoples as $mychrs)
    echo $mychrs." ";

echo "<br />--按元素值升序分列--<br />";
asort($peoples);
foreach ($peoples as $mychrs)
    echo $mychrs." ";

echo "<br />--按关头字升序分列--<br />";
ksort($peoples);
foreach ($peoples as $mychrs)
    echo $mychrs." ";
?>


和惯例数组具有sort()升序函数的反向排序rsort()降序函数绝对应的,联系关系数组也有对应的降序函数:asort()函数和arsort()函数、ksort()函数和krsort()函数。

记忆:原型函数是sort(),个中a、k暗示联系关系数组相干必需前置,反向排序利用r润色。

4,PHP数组元素随机排序

PHP中利用shuffle()函数将数组元素停止随机的从头排序,好比:


<?php
$fer=array('cnbruce','cnrose','cnjames','cnanne');
shuffle($fer);

foreach ($fer as $mychrs)
echo $mychrs." ";
?>


每次城市显示分歧的排序组合

5,PHP数组按原按次反向排序

PHP中可以使用array_reverse()函数将数组元素按原按次反向排序。好比:


<?php
$fer=array('cnbruce','cnrose','cnjames','cnanne');
foreach ($fer as $mychrs)
echo $mychrs." ";

$fer=array_reverse($fer);
echo "<br />--按原按次反向--<br />";
foreach ($fer as $mychrs)
echo $mychrs." ";
?>


cnbruce cnrose cnjames cnanne
--按原按次反向--
cnanne cnjames cnrose cnbruce

注重这里的 $fer=array_reverse($fer); 在此之前的任何排序函数均只是声明援用,并没有对原无数组停止从头界说,但当我调试该函数时则需求从头界说。这是由于array_reverse()是前往原数组修正后的正本,假如不需求原无数组,可对原数组从头界说到达掩盖的目标,不然就别的界说数组保留正本,好比:$fer_bak=array_reverse($fer);我的这套线路可能跟许多学习PHP的爱好者不谋而合,这也算是一个循序渐进的学习过程,不过新手不要看到上面的概括就以为学习蛮简单的,默默在此不得不对您稍微泼一下冷水,任何东西其实都不简单。
小妖女 该用户已被删除
沙发
发表于 2015-2-4 08:01:47 | 只看该作者
当然这种网站的会员费就几十块钱。
因胸联盟 该用户已被删除
板凳
发表于 2015-2-6 16:06:17 | 只看该作者
我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。
冷月葬花魂 该用户已被删除
地板
发表于 2015-2-8 01:14:00 | 只看该作者
说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。
金色的骷髅 该用户已被删除
5#
发表于 2015-2-8 16:30:30 | 只看该作者
当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,
不帅 该用户已被删除
6#
发表于 2015-2-25 20:49:17 | 只看该作者
先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。
若天明 该用户已被删除
7#
发表于 2015-3-8 03:12:22 | 只看该作者
首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。
爱飞 该用户已被删除
8#
发表于 2015-3-15 03:16:48 | 只看该作者
这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己
谁可相欹 该用户已被删除
9#
发表于 2015-3-21 16:39:58 | 只看该作者
为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。
深爱那片海 该用户已被删除
10#
发表于 2015-3-25 02:27:27 | 只看该作者
建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。
再见西城 该用户已被删除
11#
发表于 2015-3-27 14:08:51 | 只看该作者
说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年  具体的记不清啦,囧。
再现理想 该用户已被删除
12#
发表于 2015-3-28 05:26:36 | 只看该作者
为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。
飘灵儿 该用户已被删除
13#
发表于 2015-4-6 17:03:20 | 只看该作者
曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线  \\\\\\\'_\\\\\\\' ;
14#
发表于 2015-4-13 00:39:50 | 只看该作者
开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。
莫相离 该用户已被删除
15#
发表于 2015-4-17 13:15:49 | 只看该作者
因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax
第二个灵魂 该用户已被删除
16#
发表于 2015-4-26 06:10:56 | 只看该作者
当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,
灵魂腐蚀 该用户已被删除
17#
发表于 2015-4-29 03:29:21 | 只看该作者
当然这种网站的会员费就几十块钱。
老尸 该用户已被删除
18#
发表于 2015-5-1 12:11:35 | 只看该作者
php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会)
admin 该用户已被删除
19#
发表于 2015-6-7 19:40:57 | 只看该作者
说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年  具体的记不清啦,囧。
愤怒的大鸟 该用户已被删除
20#
发表于 2015-6-10 07:21:07 | 只看该作者
当然这种网站的会员费就几十块钱。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-14 13:53

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表