仓酷云

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

[学习教程] PHP教程之入门常识:静态网页PHP编程中数组的基本...

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

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

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

x
理解动态语言的概念,运做机制,熟悉PHP语法   关于数组:
PHP中的数组是庞杂的,而且比很多其他初级言语中的数组更天真。
数组array是一组有序的变量,个中每一个变量被叫做一个元素。
数组可以被编号或相干联,也就是数组的元素可以分离依据数字索引或文本化字符串来会见
PHP中,数组可以包括标量(整数,布尔,字符串,浮点数)或复合值(对象乃至其他数组),而且可以包括分歧类型的值
1。创立数组
PHP供应创立数组的array()言语布局
$numbers = array(5,4,3,2,1);
$words = array("web","database","application");
echo $numbers[2];
echo $words[0];
---------------------输入了局----------------------------------------
3web
---------------------------------------------------------------------
默许情形下,数组的第一个元素的索引为0。数组中包括的值可以经由过程利用方括号[]语法来检索和修正
$numbers[5] = 0;
数字化索引的数组可以创立位从任何索引值入手下手
$numbers = array(1=>"one","two","three","four");
也能够松懈的索引
$numbers = array(1=>"one",3=>"three",5=>"zero");
可以经由过程给变量付与一个没有参数的array()来创立空数组。然后可以经由过程利用方括号[]语法来添加值
$error = array();
$error[] = "no error!!!";
$error[] = "second error!!!";
echo $error[0];
echo $error[1];
---------------------输入了局----------------------------------------
no error!!!second error!!!
---------------------------------------------------------------------
2.联系关系数组
联系关系数组(associative array)利用字符串索引(或键)来会见存储在数组中的值
联系关系索引的数组关于数据库层交互十分有效
$newarray = array("first"=>1,"second"=>2,"third"=>3);
echo $newarray["second"];
$newarray["third"]=5;
echo $newarray["third"];
---------------------输入了局----------------------------------------
25
---------------------------------------------------------------------
3.异构数组
PHP数组可以包括分歧品种的值
$mixedBag = array("cat",42,8.5,false);
var_dump(mixedBag);
4.多维数组
创立包括数组的数组,数组维数没无限制,然而普通很难想象一个多于三维的数组的用法
$planets = array(array("MM",1,2),array("NN",3,4),array("BB",5,6),array("VV",7,8));
print $planets[2][0];
$planets2 = array("MM"=>array("AA"=>1,"SS"=>2),
"NN"=>array("DD"=>3,"FF"=>4),
"BB"=>array("GG"=>6,"HH"=>7,"PP"=>array("haha!!!!")),
"VV"=>array("JJ"=>6,"KK"=>7,"LL"=>array("one","two")));
print $planets2["VV"]["LL"][0];
---------------------输入了局----------------------------------------
BBone
---------------------------------------------------------------------
5.利用轮回会见数组
遍历数组的办法有良多(利用while,for轮回)或foreach语句,最轻易的是foreach 语句
$length = array(0,107,202,400,475);
//将厘米转换为寸
for($i=0;$i<5;$i++)
{
echo ($length[$i]/3);
}
$j=0;
while(isset($length[$j]))
{
echo ($length[$j]/3);
$j++;
}
foreach($length as $cm)
{
echo ($cm/3);
}
---------------------输入了局----------------------------------------
0
35.6666666667
67.3333333333
133.333333333
158.333333333
0
35.6666666667
67.3333333333
133.333333333
158.333333333
0
35.6666666667
67.3333333333
133.333333333
158.333333333
---------------------------------------------------------------------
foreach还可以迭代联系关系数组的值
$sound = array("cow"=>"moo","dog"=>"woof",
"pig"=>"oink","duck"=>"quack");
foreach ($sound as $animal=>$noice)
{
echo "$animal 得啼声是如许的 $noice $noice......";
}
---------------------输入了局----------------------------------------
cow 的啼声是如许的 moo moo......
dog 的啼声是如许的 woof woof......
pig 的啼声是如许的 oink oink......
duck 的啼声是如许的 quack quack......
---------------------------------------------------------------------
6.利用数组指针
与存储在数组中的键和联系关系值一同,PHP还具有一个指向数组以后元素的外部索引,
有几个函数利用并更新该数组索引来供应对数组元素的会见
$a = array("a","b","c","d","e","f");
echo current($a);
each($a);
key($a);//今朝数组的指针,前往其索引
echo current($a);//以后元素的值
each($a);//前往以后元素的值并将外部索引指向下一个元素
each($a);
echo current($a);
next($a);//指向下一个元素
echo current($a);
prev($a);//指向上一个元素
echo current($a);
end($a);//指向最初一个元素
echo current($a);
key($a);
echo current($a);
---------------------输入了局----------------------------------------
abdedff
---------------------------------------------------------------------
7.根基的数组函数
integer count(mixed var)//在数组中前往元素的个数,也可用于任何的变量
number max(array numbers)//前往数组中的最大值
number min(array numbers)//前往数组中的最小值
boolean in_array(mixed needle,array haystack[,bollean strict])//查找数组中的值,第三个参数可选,强迫履行类型反省
mixed array_search(mixed needle,array haystack[,boolean strict])//前往 键 而不是布尔值,
找不到时前往false,找到的元素假如正好是第一个元素,则前往0,而PHP会主动转化为false所以需求利用===判别,以下
$a = array("a","b","c","d","e","f");
$index = array_search("a",$a);
if($index === false)
echo "在数组a中未发明字符'a'";
else
echo "Index = $index";
---------------------输入了局----------------------------------------
Index = 0
---------------------------------------------------------------------
array array_reverse(array source[,bool preserve_keys])//逆转数组,生成一个新数组,可选参数为true时,保存索引和元素之间的联系关系
$a = array("a","b","c","d","e","f");
$newa = array_reverse($a);//直接翻转
echo $newa[0];
$newb = array_reverse($a,true);//照旧保存了索引和元素之间的联系关系
echo $newb[0];
---------------------输入了局----------------------------------------
fa
---------------------------------------------------------------------
sort(array subject[,integer sort_flag])//依据 值 停止升序分列(在原数组中从头分列元素)
rsort(array subject[,integer sort_flag])//依据 值 停止降序分列(在原数组中从头分列元素)
可选参数可以指定为按数字体例SORT_NUMERIC仍是字符串体例SORT_STRING或凡是的体例SORT_REGULAR排序
sort()、rsort()可以用于联系关系数组,然而 键 将丧失
asort(array subject[,integer sort_flag])//依据 值 停止升序分列(在原数组中从头分列元素),坚持键值联系关系
arsort(array subject[,integer sort_flag])//依据 值 停止降序分列(在原数组中从头分列元素),坚持键值联系关系
当asort() arsort()用于非联系关系数组时,元素按排序后的次第从头分列,然而会见元素的索引不改动
integer ksort(ayyay subject [,integer sort_flag])//依据 键或索引 停止升序分列
integer krsort(ayyay subject [,integer sort_flag])//依据 键或索引 停止降序分列
usort(array subject, string compare_function)//依据用户界说排序,用户界说本人的排序划定规矩函数,但函数必需合适
uasort(array subject, string compare_function)//integer my_compare_function(mixed a, mixed b),a>b前往1,a uksort(array subject, string compare_function)//a等于b时前往0
$numbers = array(16,3,2,171,5,24,6,19);
sort($numbers);
foreach($numbers as $n)
echo $n." ";
$numbers = array(16,3,2,171,5,24,6,19);
rsort($numbers);
foreach($numbers as $n)
echo $n." ";
$numbers = array(16,3,2,171,5,24,6,19);
sort($numbers,SORT_STRING);
foreach($numbers as $n)
echo $n." ";
$a = array("o"=>"kk","e"=>"zz","z"=>"hh","a"=>"rr");
asort($a);
foreach ($a as $keyname=>$keyvalue)
echo $keyvalue;
$a = array("o"=>"kk","e"=>"zz","z"=>"hh","a"=>"rr");
ksort($a);
foreach ($a as $keyname=>$keyvalue)
echo $keyvalue;
//基于长度对照两个字符串
function cmp_length($a,$b)
{
if(strlen($a) < strlen($b))
return -1;
if(strlen($a) > strlen($b))
return 1;
return 0;
}
$animals = array("cow","ox","monkey","mimi");
usort($animals,"cmp_length");
foreach($animals as $an)
echo $an;
---------------------输入了局----------------------------------------
2 3 5 6 16 19 24 171 171 24 19 16 6 5 3 2 16 171 19 2 24 3 5 6 hhkkrrzzrrzzkkhhoxcowmimimonkey
---------------------------------------------------------------------
array_merge($a,$b)//组合数组,团体以为是对照风趣的函数之一,从两个数组生成一个数组,具有不异 键 的值会被掩盖
////////////////////////////代码局部////////////////////////////////////////
$a = array("name"=>"zhangsan",10,100);
$b = array("name"=>"lisi",4,6,8);
$c = array_merge($a,$b);
var_dump($c);
//////////////////////////////////////////////////////////////////////////
---------------------输入了局----------------------------------------
array(6) { ["name"]=> string(4) "lisi" [0]=> int(10) [1]=> int(100) [2]=> int(4) [3]=> int(6) [4]=> int(8) }
---------------------------------------------------------------------
array array_combine(array $a,array $b)//a数组的值为新数组的键,b数组的值为新数组的值,数组长度分歧时,前往false
////////////////////////////代码局部////////////////////////////////////////
$a = array("name","math","china");
$b = array("zhangsan",4,6);
$c = array_combine($a,$b);
var_dump($c);
//////////////////////////////////////////////////////////////////////////
---------------------输入了局----------------------------------------
array(3) { ["name"]=> string(8) "zhangsan" ["math"]=> int(4) ["china"]=> int(6) }
---------------------------------------------------------------------
你的留言本应该加入注册以及分页功能了,而如果你更强的话,UI(用户界面)也可以加强,完成之后,感觉是不是特有成就感?不管怎么样,咱好歹是写了一个动态网站程序了,放在自己的网站上耍耍吧。
因胸联盟 该用户已被删除
沙发
发表于 2015-2-4 08:02:31 | 只看该作者
我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
山那边是海 该用户已被删除
板凳
发表于 2015-2-4 21:54:36 | 只看该作者
我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。
第二个灵魂 该用户已被删除
地板
发表于 2015-2-10 10:53:45 | 只看该作者
,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。
灵魂腐蚀 该用户已被删除
5#
发表于 2015-2-16 20:14:32 | 只看该作者
刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。
不帅 该用户已被删除
6#
发表于 2015-3-7 14:48:06 | 只看该作者
有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。
admin 该用户已被删除
7#
发表于 2015-3-11 19:05:01 | 只看该作者
这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己
愤怒的大鸟 该用户已被删除
8#
发表于 2015-3-13 21:48:41 | 只看该作者
学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。
小妖女 该用户已被删除
9#
发表于 2015-3-14 00:40:14 | 只看该作者
使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的
乐观 该用户已被删除
10#
发表于 2015-4-1 06:56:49 | 只看该作者
有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。
若天明 该用户已被删除
11#
发表于 2015-4-1 21:10:09 | 只看该作者
最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。
小女巫 该用户已被删除
12#
发表于 2015-4-3 23:28:05 | 只看该作者
有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。
莫相离 该用户已被删除
13#
发表于 2015-4-6 11:35:00 | 只看该作者
在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、
活着的死人 该用户已被删除
14#
发表于 2015-4-6 20:08:51 | 只看该作者
说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年  具体的记不清啦,囧。
透明 该用户已被删除
15#
发表于 2015-4-14 06:05:38 | 只看该作者
个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。
若相依 该用户已被删除
16#
发表于 2015-5-9 13:38:10 | 只看该作者
Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81
深爱那片海 该用户已被删除
17#
发表于 2015-6-20 05:58:37 | 只看该作者
再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。
冷月葬花魂 该用户已被删除
18#
发表于 2015-6-21 01:40:08 | 只看该作者
刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。
金色的骷髅 该用户已被删除
19#
发表于 2015-6-28 04:18:58 | 只看该作者
个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-23 03:02

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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