版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
河南省样本厅系统项目启动会26、我们像鹰一样,生来就是自由的,但是为了生存,我们不得不为自己编织一个笼子,然后把自己关在里面。——博莱索27、法律如果不讲道理,即使延续时间再长,也还是没有制约力的。——爱·科克28、好法律是由坏风俗创造出来的。——马克罗维乌斯29、在一切能够接受法律支配的人类的状态中,哪里没有法律,那里就没有自由。——洛克30、风俗可以造就法律,也可以废除法律。——塞·约翰逊河南省样本厅系统项目启动会河南省样本厅系统项目启动会26、我们像鹰一样,生来就是自由的,但是为了生存,我们不得不为自己编织一个笼子,然后把自己关在里面。——博莱索27、法律如果不讲道理,即使延续时间再长,也还是没有制约力的。——爱·科克28、好法律是由坏风俗创造出来的。——马克罗维乌斯29、在一切能够接受法律支配的人类的状态中,哪里没有法律,那里就没有自由。——洛克30、风俗可以造就法律,也可以废除法律。——塞·约翰逊输出数组
Result:Array
(
[0]=>zzu
[1]=>php
[2]=>MySQL
[3]=>javascript
[4]=>html
[5]=>css
)创建数组
语法array([mixed...])
可以用array()语言结构来新建一个array.它接受一定数量用逗号分隔的key=>value参数对.
注:array()是一个语言结构,用于字面上表示数组,不是常规的函数.key可以是integer或者string,value可以是任何值创建一个数组$arr=array();创建一个数组并赋值$arr=array(‘zzu','php','MySQL','javascript','html','css');$array[]=‘zzu';
$array[]='php';
$array[]='MySQL';
$array[]='javascript';
$array[]='html';
$array[]='css'或者这样赋值:创建数组
<?php
$arr
=
array(
‘zzu'
=>
'',
'php'
=>
'php',
2
=>
'mysql',
''
);
print_r($arr);
?>
Result:Array
(
[zzu]=>
[php]=>php
[2]=>mysql
[3]=>
)上例中存在最大的整数索引值2,新的键名将为3
创建数组
数组的键是唯一的,如果指定的键名已经有了值,则该值会被覆盖.
<?php
$array[‘zzu']
=
'';
$array['php']
=
'php';
$array['mysql']
=
'mysql';
$array['apache']
=
'';
$array['mysql']
=
'我覆盖掉mysql之前赋的值了';
print_r($array);
?>
Result:Array
(
[zzu]=>
[php]=>php
[mysql]=>我覆盖掉mysql之前赋的值了
[apache]=>
)创建数组
下面介绍一下range()函数
range--
建立一个包含指定范围单元的数组
说明
arrayrange(mixedlow,mixedhigh[,numberstep]);
新参数:可选的step参数是PHP5.0.0新加的.如果给出了step的值,它将被作为单元之间的步进值.step应该为正值.如果未指定,step则默认为1.
<?php
$arr
=
range(0,9);
print_r($arr);
?>
Result:Array
(
[0]=>0
[1]=>1
[2]=>2
[3]=>3
[4]=>4
[5]=>5
[6]=>6
[7]=>7
[8]=>8
[9]=>9
)创建数组
多维数组的定义<?php
$states=array(“Ohio”=>array(“population”=>”11,353,140”,“capital”=>“Columbs”),“Nebraska”=>array(“population”=>”1,711,263”,”captal”=>“Omaha”))?>
如果引用Ohio的人口:$states[“Ohio”][“population”]这将返回以下值:11,353,140增加和删除数组元素PHP为扩大和缩小数组提供了一些函数.对于那些希望模仿各种堆栈、队列实现(FIFO等)的程序员来说,这些函数可以提供便利.顾名思义,从这些函数的函数名(push、pop、shift和unshift)就清楚地反映出其作用.
增加元素$arrayname[]
<?php
$arr
=
array(‘zzu','php','MySQL','javascript');
$arr[]
=
'html';//增加一个元素插到最后
$arr['css']
=
'css';//再增加一个元素插到最后
print_r($arr);
?>
Result:Array
(
[0]=>zzu
[1]=>php
[2]=>MySQL
[3]=>javascript
[4]=>html
[css]=>css
)队列与栈数据结构的区别:队列是先进先出(FIFO),栈是后进先出。增加和删除数组元素
删除元素unset()
用unset()删除一个数组变量,即使是数字索引,此函数也不会重新对数组索引
示例:
<?php
$arr
=
array(
‘zzu'
=>
'',
'php'
=>
'php',
'mysql'
=>
'mysql',
'apache'
=>
''
);
unset($arr['php']);
print_r($arr);
?>
Result:Array
(
[zzu]=>
[mysql]=>mysql
[apache]=>
)增加和删除数组元素
上例中索引保持不变
<?php
$arr
=
array(‘zzu','php','MySQL','javascript');
unset($arr[1]);
print_r($arr);
?>
Result:Array
(
[0]=>zzu
[2]=>MySQL
[3]=>javascript
)增加和删除数组元素
array_push()
array_push()函数将variable增加到target_array的末尾,成功时返回TRUE,否则返回FALSE.
这个和栈的入栈相似.可以为此函数传递多个变量作为输入参数,同时向数组压入多个变量(元素).
<?php
$arr
=
array(‘zzu','php','MySQL','javascript');
array_push($arr,'html','css');
print_r($arr);
?>
Result:Array
(
[0]=>zzu
[1]=>php
[2]=>MySQL
[3]=>javascript
[4]=>html
[5]=>css
)增加和删除数组元素
注:如果用array_push()来给数组增加一个单元,还不如用$array[]=,因为这样没有调用函数的额外负担.
注:如果第一个参数不是数组,array_push()将发出一条警告.这和$var[]的行为不同,后者会新建一个数组.
array_unshift(array&$array,mixed$var[,mixed$...])
array_unshift()将传入的单元插入到array数组的开头.注意单元是作为整体被插入的,因此传入单元将保持同样的顺序.所有的数值键名将修改为从零开始重新计数,所有的文字键名保持不变.函数的返回值是array数组新的单元数目.
<?php
$arr
=
array(
0
=>
'php',
1
=>
'mysql',
2
=>
''
);
$zzu
=
'';
$num
=
array_unshift($arr,$zzu);
echo
"新的数组的长度是:".$num;
echo
"\r\n\r\n";
print_r($arr);
?>
增加和删除数组元素
Result:新的数组的长度是:4
Array
(
[0]=>
[1]=>php
[2]=>mysql
[3]=>
)array_pop()
array_pop()函数返回target_array的最后一个元素(出栈),并在结束后重置数组的指针.
增加和删除数组元素
<?php
$arr
=
array(
‘zzu'
=>
'',
'php'
=>
'php',
'mysql'
=>
'mysql',
'apache'
=>
''
);
echo
array_pop($arr);
echo
"\n\n";
print_r($arr);
?>
Result:
Array
(
[zzu]=>
[php]=>php
[mysql]=>mysql
)增加和删除数组元素
array_shift(array&$array)
array_shift()将array的第一个单元移出并作为结果返回(出列),将array的长度减一并将所有其它单元向前移动一位.所有的数字键名将改为从零开始计数,文字键名将不变.如果array为空(或者不是数组),则返回NULL.使用本函数后会重置数组指针.
//Key为数字<?php
$arr
=
array(‘zzu','php','MySQL','javascript','html','css');
echo
array_shift($arr);
echo
"\n\n";
print_r($arr);
?>
Result:zzu
Array
(
[0]=>php
[1]=>MySQL
[2]=>javascript
[3]=>html
[4]=>css
)增加和删除数组元素
键值为字符串
<?php
$arr
=
array(
‘zzu'
=>
'',
'php'
=>
'php',
'mysql'
=>
'mysql',
'apache'
=>
''
);
echo
array_shift($arr);
echo
"\r\n\r\n";
print_r($arr);
?>
Result:zzu.ed
Array
(
[php]=>php
[mysql]=>mysql
[apache]=>
)增加和删除数组元素
arrayarray_pad(array$input,int$pad_size,mixed$pad_value)
array_pad()函数会修改target数组,将其大小增加到length指定的长度.这是通过在数组中填充由pad_value指定的值实现的.如果pad_value是正数,将填充到数组的右侧(后面);如果为负,则将填充到左侧(前面).如果length等于或小于当前大小,将不做任何操作.示例如下:
<?php
$input
=
array(12,
10,
9);
$result
=
array_pad($input,
5,
0);
//
result
is
array(12,
10,
9,
0,
0)
$result
=
array_pad($input,
-7,
-1);
//
result
is
array(-1,
-1,
-1,
-1,
12,
10,
9)
$result
=
array_pad($input,
2,
"noop");
//
not
padded
?>
遍历数组
count(mixedvar[,intmode])
计算数组中的单元数目或对象中的属性个数,返回var中的单元数目,通常是一个array,任何其它类型都只有一个单元.
如果可选的mode参数设为1,count()将递归地对数组计数.对计算多维数组的所有单元尤其有用.mode的默认值是0
<?php
$arr
=
array(‘zzu','php','MySQL','javascript','html','css');
echo
"数组长度:".count($arr);
?>
Result:数组长度:6遍历数组
count(mixedvar[,intmode])
示例:带参数mode
<?php
$arr
=
array(
‘zzu'
=>
'',
'php'
=>
'php',
'mysql'
=>
'mysql',
'apache'
=>
''
);
$array[]
=
‘Zzu';
$array[]
=
$arr;//数组的值又是一个数组
$array[]
=
'MySQL';
$array[]
=
'javascript';
$array[]
=
'html';
$array[]
=
'css';
echo
"不递归:".count($array)."\n";
echo
"递归:".count($array,1);
?>
Result:不递归:6
递归:10注意:sizeof()函数是count()别名。它们的功能是一样的。遍历数组
我们随即来利用count来遍历一下数组
<?php
$arr
=
array(‘zzu','php','MySQL','javascript','html','css');
for($i=0;$i<count($arr);$i++){//一定要记得数组索引是从0开始的
echo
"第".$i."个元素是:".$arr[$i]."\n";
}
?>
Result:第0个元素是:zzu
第1个元素是:php
第2个元素是:MySQL
第3个元素是:javascript
第4个元素是:html
第5个元素是:css很显然这种遍历只能适用与数字索引,并且是规则的数字索引
那么想字符索引那些如何遍历呢?遍历数组
current()语法形式:mixedcurrent(arrarytarget_array)current()函数返回target_array数组当前指针位置的数组值。如果内部指针指向超出了单元列表的末端,current()返回FALSE。
<?php
$arr
=
array(
‘zzu'
=>
'',
'php'
=>
'php',
'mysql'
=>
'mysql',
'apache'
=>
''
);
while($value
=
current($arr)){
echo
$value."\n";
next($arr);
}
?>
next()语法形式:mixednext(arraryinput_array)next()函数返回input_array中紧接这放在当前数组指针的下一个位置的数组值。
注意:current()与next()函数不同,current()不移动指针,而next()函数需要移动指针。
遍历数组
Result:phpfans
php
mysql
补充知识:list
--
把数组中的值赋给一些变量
voidlist(mixed...)
List()函数与array()函数类似,只是它可以在一次操作中从一个数组内提取多个值,同时为多个变量赋值。<?php
$info=array('coffee','brown','caffeine');
//Listingallthevariables
list($drink,$color,$power)=$info;
print"$drinkis$colorand$powermakesitspecial.\n";?>
Result:coffeeisbrownandcaffeinemakesitspecial.遍历数组
each()语法形式:arrayeach(arrayinput_array)函数返回input_array的当前键/值对,并将指针推进一个位置.键值对被返回为四个单元的数组,键名为0,1,key和value。单元0和key包含有数组单元的键名,1和value包含有数据。如果执行each()前指针位于数组末尾,则返回FALSE.
遍历数组
each()举例<?php
$foo=array("bob","fred","jussi","jouni","egon","marliese");
$bar=each($foo);
print_r($bar);
?>$bar现在包含有如下的键/值对:Array{[1]=>bob[value]=>bob[0]=>0[key]=>0}遍历数组
each()举例<?php
$foo=array("Robert"=>"Bob","Seppo"=>"Sepi");
$bar=each($foo);
print_r($bar);
?>$bar现在包含有如下的键/值对:Array{[1]=>Bob[value]=>Bob[0]=>Robert[key]=>Robert}遍历数组
each()经常和list()结合使用来遍历数组。在执行each()之后,数组指针将停留在数组中的下一个单元或者当碰到数组结尾时停留在最后一个单元。如果要再用each遍历数组,必须使用reset()。<?php
$arr
=
array(
‘zzu'
=>
'',
'php'
=>
'php',
'mysql'
=>
'mysql',
'apache'
=>
''
);
while
(list($key,
$val)
=
each($arr))
{
echo
"$key
=>
$val\n";
}
?>
Result:zzu=>
php=>php
mysql=>mysql
apache=>遍历数组
我们最常用的遍历数组的函数是foreach
foreach控制结构是专门用于数组的.它提供了一个简单的方法来遍历数组.
foreach(array_expressionas$value)
statement
foreach(array_expressionas$key=>$value)
statement第一种格式遍历给定的array_expression数组.每次循环中,当前单元的值被赋给$value并且数组内部的指针向前移一步(因此下一次循环中将会得到下一个单元).
第二种格式做同样的事,只除了当前单元的键名也会在每次循环中被赋给变量$key<?php
$arr
=
array(
‘zzu'
=>
'',
'php'
=>
'php',
'mysql'
=>
'mysql',
'apache'
=>
''
);
foreach($arr
as
$value){
echo
$value."\n";
}
?>
遍历数组
Result:
php
mysql
<?php
$arr
=
array(
‘zzu'
=>
'',
'php'
=>
'php',
'mysql'
=>
'mysql',
'apache'
=>
''
);
foreach($arr
as
$key
=>
$value){
echo
$key."=>".$value."\n";
}
?>
遍历数组
Result:zzu=>php=>php
mysql=>mysql
apache=>有用函数
arrayarray_merge(arrayarray1[,arrayarray2[,array...]])
array_merge()将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面.返回作为结果的数组.
如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值.然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面.
<?php
$array1=array("color"=>"red",2,4);
$array2=array("a","b","color"=>"green","shape"=>"trapezoid",4);
$result=array_merge($array1,$array2);
print_r($result);
?>Result:Array
(
[color]=>green
[0]=>2
[1]=>4
[2]=>a
[3]=>b
[shape]=>trapezoid
[4]=>4
)有用函数
arrayarray_merge(arrayarray1[,arrayarray2[,array...]])
array_merge()将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面.返回作为结果的数组.
如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值.然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面.
<?php
$array1
=
array(1
=>
"php爱好者站");
$array2
=
array(3
=>
't');
$result
=
array_merge($array1,
$array2);
print_r($result);
?>
Result:Array
(
[0]=>php爱好者站
[1]=>
)有用函数
arrayarray_merge(arrayarray1[,arrayarray2[,array...]])
array_merge()将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面.返回作为结果的数组.
如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值.然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面.
如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引.
<?php
$array1=array();
$array2=array(1=>"data");
$result=array_merge($array1,$array2);
?>Array
(
[0]=>data
)注意:数字键名将会被重新编号有用函数
如果你想完全保留原有数组并只想新的数组附加到后面,用+运算符:
<?php
$array1
=
array(1
=>
"php爱好者站");
$array2
=
array(3
=>
'');
$result
=
$array1
+
$array2;
print_r($result);
?>
Result:Array
(
[1]=>php爱好者站
[3]=>
)有用函数
array_merge_recursive()
array_merge_recursive()函数与array_merge()相同,可以将两个或多个数组合并在一起,形成一个联合的数组.两者之间的区别在于,当某个输入数组中的某个键已经存在于结果数组中时会以怎样的处理方式.array_merge()会覆盖前面存在的键/值对,替换为当前输入数组中的键/值对,而array_merge_recursive()将把两个值合并在一起,形成一个新的数组,并以现有的键作为数组名.示例如下:
<?php
$array1
=
array('welcome'
=>'欢迎光临',
'name'
=>
"phpfans");
$array2
=
array('name'
=>
'php爱好者站',
'url'
=>
'phpfans');
$result1
=
array_merge($array1,
$array2);
print_r($result1);
echo
"\n";
$result2
=
array_merge_recursive($array1,
$array2);
print_r($result2);
?>
有用函数
Result:Array
(
[welcome]=>欢迎光临
[name]=>php爱好者站
[url]=>phpfans
)
Array
(
[welcome]=>欢迎光临
[name]=>Array
(
[0]=>phpfans
[1]=>php爱好者站
)
[url]=>phpfans
)有用函数
说了数组的合并,如何将数组的所有元素合并成一个字符串呢?php中提供了方便的函数implode
implode(stringglue,arraypieces)
本函数将数组的内容组合成一个字符串,参数glue是字之间的分隔符号.
<?php
$arr['name']
=
'php爱好者站';
$arr['teach']
=
'系列教程';
$arr['url']
=
'phpfans';
$str
=
implode(',',$arr);
echo
$str;
?>
Result:php爱好者站,系列教程,phpfans有用函数
array_slice(array$array,int$offset[,int$length])
array_slice()返回根据offset和length参数所指定的array数组中的一段序列.
如果offset非负,则序列将从array中的此偏移量开始.如果offset为负,则序列将从array中距离末端这么远的地方开始.
<?php
$arr
=
array(
'',
'php',
'mysql',
''
);
$array1
=
array_slice($arr,0,2);
$array2
=
array_slice($arr,-3,2);
print_r($array1);
echo
"\n";
print_r($array2);
echo
"\n";
有用函数
Result:Array
(
[0]=>phpfans
[1]=>php
)
Array
(
[0]=>php
[1]=>mysql
)
有用函数
arrayarray_splice(array&$input,int$offset[,int$length[,array$replacement]])
array_splice()把input数组中由offset和length指定的单元去掉,如果提供了replacement参数,则用replacement数组中的单元取代.返回一个包含有被代替后的数组.注意input中的数字键名不被保留.
如果offset为正,则从input数组中该值指定的偏移量开始移除.如果offset为负,则从input末尾倒数该值指定的偏移量开始移除,并以数组的形式返回所删除的元素。
如果省略length,则移除数组中从offset到结尾的所有部分.如果指定了length并且为正值,则移除这么多单元.如果指定了length并且为负值,则移除从offset到数组末尾倒数length为止中间所有的单元,并以数组的形式返回所删除的元素。有用函数
<?php
$arr
=
array(
‘’,
‘php’,
‘mysql’,
‘’
);
$arr1
=
$arr;
$array1
=
array_splice($arr1,2);
print_r($arr1);
echo
“\n”;
print_r($array1);
echo
“\n”;
$arr2
=
$arr;
array_splice($arr2,2,1);
print_r($arr2);
echo
“\n”;
$arr3
=
$arr;
$arr_replacement
=
array(‘php学习','php官方');
array_splice($arr3,2,1,$arr_replacement);
print_r($arr3);
?>
有用函数
Array
(
[0]=>t
[1]=>php
)
Array
(
[0]=>mysql
[1]=>
)
Array
(
[0]=>
[1]=>php
[2]=>
)
Array
(
[0]=>
[1]=>php
[2]=>php爱好者
[3]=>php官方
[4]=>
)有用函数
array_intersect(array$array1,array$array2[,array$...])
array_intersect()返回一个数组,该数组包含了所有在array1中也同时出现在所有其它参数数组中的值.注意键名保留不变。
<?php
$array1=array("a"=>"green","red","blue");
$array2=array("b"=>"green","yellow","red");
$result=array_intersect($array1,$array2);
?>这使得$result成为:Array
(
[a]=>green
[0]=>red
)注:两个单元仅在(string)$elem1===(string)$elem2时被认为是相同的。也就是说,当字符串的表达是一样的时候。有用函数
arrayarray_intersect_assoc(arrayarray1,arrayarray2[,array...])
array_intersect_assoc()返回一个数组,该数组包含了所有在array1中也同时出现在所有其它参数数组中的值。注意和array__intersect()不同的是键名也用于比较。
<?php
$array1=array("a"=>"green","b"=>"brown","c"=>"blue","red");
$array2=array("a"=>"green","yellow","red");
$result_array=array_intersect_assoc($array1,$array2);
/*$result_arraywilllooklike:
Array
(
[a]=>green
)
*/
?>上面例子中可以看到只有键值对“a”=>“green”在两个数组中都存在从而被返回。值"red"没有被返回是因为在$array1中它的键名是0而在$array2中"red"的键名是1。有用函数
排序函数,我们也知道一些排序算法,如冒泡排序、堆排序、希尔排序和快速排序.排序在编程中经常用到.PHP提供了能以多种不同方式对数组排序的大量有用的函数,从而简化了这个过程.这也体现了php是非常方便的.下面将详细结束这些函数
Voidsort(array&$array[,int$sort_flags])
sort()函数会对target
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 面的面试问题
- 商场营销策划方案(完整具体执行流程细则)
- 生物化学笔记-考研复习重点
- 2024年度英语教师个人述职报告篇
- 古诗改写作文300字精彩3篇
- 重庆康德卷2024年普通高等学校招生全国统一考试高三第二次联合诊断考试数学试题(含答案)
- 2024年江苏省南通市中考生物一模试卷
- 陕西省榆林市榆阳区第五中学2023-2024学年下学期七年级综合作业考试数学试题
- 辽宁省大连市2023年中考化学试题(附解析)
- 休闲食品行业趋势展望
- 中继台双工器结构性能与调试方法
- 水泥搅拌桩试桩施工记录表(附表一)
- 给水管道工程混凝土支墩工程施工方案
- 记账凭证模版打印版
- SFC《第四次机器人大战》全程攻略图文教程
- 品质管理流程图
- 急进性肾小球肾炎.ppt
- 地基钎探记录表.doc
- 小米公司战略分析报告
- 锚索张拉,规范
- 工厂供电课程设计某塑料制品厂全厂总配变电所及配电系统设计
评论
0/150
提交评论