仓酷云

标题: PHP编程:第4章 数据处置-php数组的处置-郑阿奇 [打印本页]

作者: 因胸联盟    时间: 2015-2-3 23:37
标题: PHP编程:第4章 数据处置-php数组的处置-郑阿奇
终于理解了数据库的概念,而且让你兴奋不已的是你终于可以通过PHP来连接数据库了,这期间你是怎么学会的,我们不去考证了,但是事实证明,你已经可以了。   1.数组的处置:
1.1 数组的创立和初始化:
1.arrary()函数创立数组,默许情形下0元素是数组的第一个元素,
count()和sizeof()函数取得数据元素的个数
2.利用变量创立数组
compact()在以后的符号表中查找该变量名并将它添加到输入的数组中,变量名成为键名而变量的内容成为该键的值.
复制代码 代码以下:
<?php
$num=10;
$str="string";
$array=array(1,2,3);
$newarray=compact("num","str","array");
print_r($newarray);
/*了局
array([num]=10 [str]=>string [array]=>array([0]=>1 [1]=>2 [2]=>3))
*/
?>

extract() 将数组中的单位转为变量
复制代码 代码以下:
<?php
$array=array("key1"=>1,"key2"=2,"key3"=3);
extract($array);
echo "$key1 $key2 $key3";//输入1 2 3
?>

3.利用两个数组创立一个数组
复制代码 代码以下:
array_combine(array $keys, array $values)
<?php
$a=array('green','red','yellow');
$b=array(' volcado','apple','banana');
$c=array_combine($a,$b);
print_r($c);
?>

4.创立指定局限数组
range()
5.主动创立数组
1.2 键名和值的操作
本大节只讲经常使用的
。反省数组是不是存在某个键名和值可使用。array_key_exists()和in_arrary函数,isset()反省数组中的键名,当键名为NULL时,isset()前往           false,而array_key_exists()前往true.
。array_search()函数用于反省数组的键值是不是存在,不存在前往NULL。
。key()函数可以获得数组以后单位的键名.
。list()函数,将数组中值赋给指定的变量。在数组遍历中十分有效。
<?php
$arr=array("白色","蓝色","白色");
list($red,$blue,$white)=$arr;
echo $red; //白色
echo $blue; //蓝色
echo $white; // 白色
。array_fill()和array_fill_keys()可以用给定的值班填凑数组的值和键名
。array_filp()可以互换数组中的键名和值,别的假如互换数组中有不异的值,则不异的值转换为键名后,值保存最初一个
。array_keys()和array_values()函数可以获得数组中的键名和值,并保留到一个新的数组中。
。array_splice(arry $input,int $offset[,int $length[,array $replacement]])将数组中的一个或多个单位删除并用其它值取代。
。array_unique(),可以移除数组中的反复的值,前往一个新数组,其实不会损坏原本的数组。
1.3 数组的遍历与输入
1.利用while 轮回会见数组
使用while、list()、each()函数对数组遍历
2. for轮回会见数组
3.利用foreach轮回会见数组
复制代码 代码以下:
<?php
$color=array("a"=>"red","blue","white");
foreach($color as $value)
{
echo $value."<br>";//输入数组的值
}
foreach($color as $key=>$value)
{
echo $key."=>".$value."<br>";//输入数组的键名和值
}
?>

例4.1 在页面熟制品个文本框,用户输出先生成就,提交表单后输入个中分数小于60分的值,并盘算均匀成就后输入。
复制代码 代码以下:
<?php
echo "<form method=post>"; //新建表单
for($i=1;$i<6;$i++) //轮回生成文本框
{
//文本框的名字是数组名
echo "先生".$i."的成就:<input type=text name='stu[]' ><br>";
}
echo "<input type=submit name=bt value='提交'>"; //提交按钮
echo "</form>";
if(isset($_POST['bt'])) //反省提交按钮是不是按下
{
$sum=0; //总成就初始化为0
$k=0;
$stu=$_POST['stu']; //获得一切文本框的值并付与数组$stu
$num=count($stu); //盘算数组$stu元素个数
echo "您输出的成就有:<br>";
foreach($stu as $score) //利用foreach轮回遍历数组$stu
{
echo $score."<br>"; //输入吸收的值
$sum=$sum+$score; //盘算总成就
if($score<60) //判别分数小于60的情形
{
$sco[$k]=$score; //将分数小于60的值赋给数组$sco
$k++; //数组$sco的键名索引加1
}
}
echo "<br>低于60分的成就有:<br>";
for($k=0;$k<count($sco);$k++) //利用for轮回输入$sco数组
echo $sco[$k]."<br>";
$average=$sum/$num; //盘算均匀成就
echo "<br>均匀分为:$average"; //输入均匀成就
}
?>

1.4 数组的排序
1.升序排序 。sort(array $array[,int $sort_flags])
注重:在对含有夹杂类型值的排序时要小尽,由于能够会发生毛病。
asort()也可升序排序,是对数组的值停止排序,但它排序后的数组还坚持键名和值之间的联系关系。
Ksort()对数组的键名排序,排序后键名和值之间的联系关系不改动。
2.降序排序。 rsort()、arsort()、krsort()
3.多维数组的排序。
4.对数组从头排序。
。shuffle()函数.感化将数组用随机的按次分列,并删除原本的键名
。array_reverse()函数.将一个数组按相反按次排序.
5.天然排序
。natsort().对巨细写敏感
1.5其它操作
1. 兼并数组
array_merge($array1,$array2).兼并后将一维数今后的数组都当作一个单位前往。array_merge_recusive()可以在坚持现无数组布局下对数组停止兼并。
2. 数组的栈操作.
出栈: array_pop($arr);
入栈: array_push($arr,var);
3.获得数组以后单位
1. current()函数可以获得数组外部指针指向的单位的值,但不挪动数组的外部指针。
2. next($arr),将指针移到下一个单位。
3. end($arr)将指针移到尾部。
4.数组盘算
count()、sizeof()盘算数组中的元素个数
array_count_values()函数可以盘算数组中的一个值呈现的次数
例:4.2 处置表格数据
吸收用户输出的先生学工作、姓名、成就等信息,将吸收到的信息存入数组并依照成就升序排序。以后再以表格输入。.
复制代码 代码以下:
<form name=fr1 method=post>
<table align=center border=1 >
<tr>
<td><div align=center>学号</div></td>
<td><div align=center>姓名</div></td>
<td><div align=center>成就</div></td>
</tr>
<?php
for($i=0;$i<5;$i++) //轮回生成表格的文本框
{?>
<tr>
<td><input type=text name="XH[]"></td>
<td><input type=text name="XM[]"></td>
<td><input type=text name="CJ[]"></td>
</tr>
<?}?>
<tr><td align ="center" colspan="3">
<input type="submit" name="bt_stu" value="提交"></td></tr>
</table>
</form>
<center><font size=3 color="red">
注重:学号值不克不及反复</font></center><br>
<!-- 以上是输出表单 -->
<?php
if(isset($_POST['bt_stu'])) //判别按钮是不是按下
{
$XH=$_POST['XH']; //吸收一切学号的值存入数组$XH
$XM=$_POST['XM']; //吸收一切姓名的值存入数组$XM
$CJ=$_POST['CJ']; //吸收一切成就的值存入数组$CJ
array_multisort($CJ,$XH,$XM); //对以上三个数组排序,$CJ为重要数组
for($i=0;$i<count($XH);$i++)
$sum[$i]=array($XH[$i],$XM[$i],$CJ[$i]); //将三个数组的值构成一个二维数组$sum
echo "<div align=center>排序后成就表以下:</div>";
//表格的首部
echo "<table align=center border=2><tr><td>学号</td><td>姓名</td><td>成就</td></tr>";
foreach($sum as $value) //利用foreach轮回遍历数组$sum
{
list($stu_number,$stu_name,$stu_score)=$value; //利用list()函数将数组中的值赋给变量
//输入表格内容
echo "<tr><td>$stu_number</td><td>$stu_name</td><td>$stu_score</td></tr>";
}
echo "</table><br>"; //表格尾部
reset($sum); //重置$sum数组的指针
while(list($key,$value)=each($sum)) //利用while轮回遍历数组
{
list($stu_number,$stu_name,$stu_score)=$value;
if($stu_number=="081101") //查询是不是有学号为081101的值
{
echo "<center><font size=4 color=red>";
echo $stu_number."的姓名为:".$stu_name.",";
echo "成就为:".$stu_score;
break; //找到则停止轮回
}
}
}
?>
就是管理员可以编辑,删除,回复 等功能,。加入管理员功能要加入登陆系统,慢慢你会想在线添加管理员,慢慢你会让自己的作品更漂亮些,慢慢1个完整的留言板就会出来了,
作者: 透明    时间: 2015-2-4 03:50
环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。
作者: 变相怪杰    时间: 2015-2-9 14:50
刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。
作者: 老尸    时间: 2015-2-27 07:42
使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。
作者: 深爱那片海    时间: 2015-3-7 14:00
个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。
作者: 谁可相欹    时间: 2015-3-15 07:28
不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。
作者: 金色的骷髅    时间: 2015-3-17 00:06
这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己
作者: 蒙在股里    时间: 2015-3-19 07:13
实践是检验自己会不会的真理。
作者: 再现理想    时间: 2015-3-23 04:23
其实也不算什么什么心得,在各位大侠算是小巫见大巫了吧,望大家不要见笑,若其中有错误的地方请各位大虾斧正。
作者: 因胸联盟    时间: 2015-4-4 04:03
Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81
作者: 简单生活    时间: 2015-4-22 11:15
最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。
作者: 飘飘悠悠    时间: 2015-5-10 22:52
个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。
作者: 小妖女    时间: 2015-6-3 21:19
如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域,
作者: 只想知道    时间: 2015-6-9 06:45
没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。
作者: 第二个灵魂    时间: 2015-7-8 21:30
使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的
作者: 飘灵儿    时间: 2015-7-9 22:51
其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎
作者: 愤怒的大鸟    时间: 2015-7-13 05:18
为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。
作者: 柔情似水    时间: 2015-7-20 00:53
兴趣是最好的老师,百度是最好的词典。
作者: 再见西城    时间: 2015-7-20 18:54
,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。
作者: 若天明    时间: 2015-9-23 02:48
先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。
作者: 活着的死人    时间: 2015-9-24 16:52
开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。




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