仓酷云

标题: PHP网页编程之PHP中数组元素升序、降序及从头排序的函... [打印本页]

作者: 精灵巫婆    时间: 2015-2-4 00:00
标题: PHP网页编程之PHP中数组元素升序、降序及从头排序的函...
你的确对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
当然这种网站的会员费就几十块钱。
作者: 因胸联盟    时间: 2015-2-6 16:06
我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。
作者: 冷月葬花魂    时间: 2015-2-8 01:14
说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。
作者: 金色的骷髅    时间: 2015-2-8 16:30
当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,
作者: 不帅    时间: 2015-2-25 20:49
先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。
作者: 若天明    时间: 2015-3-8 03:12
首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。
作者: 爱飞    时间: 2015-3-15 03:16
这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己
作者: 谁可相欹    时间: 2015-3-21 16:39
为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。
作者: 深爱那片海    时间: 2015-3-25 02:27
建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。
作者: 再见西城    时间: 2015-3-27 14:08
说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年  具体的记不清啦,囧。
作者: 再现理想    时间: 2015-3-28 05:26
为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。
作者: 飘灵儿    时间: 2015-4-6 17:03
曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线  \\\\\\\'_\\\\\\\' ;
作者: 仓酷云    时间: 2015-4-13 00:39
开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。
作者: 莫相离    时间: 2015-4-17 13:15
因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax
作者: 第二个灵魂    时间: 2015-4-26 06:10
当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,
作者: 灵魂腐蚀    时间: 2015-4-29 03:29
当然这种网站的会员费就几十块钱。
作者: 老尸    时间: 2015-5-1 12:11
php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会)
作者: admin    时间: 2015-6-7 19:40
说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年  具体的记不清啦,囧。
作者: 愤怒的大鸟    时间: 2015-6-10 07:21
当然这种网站的会员费就几十块钱。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2