php数组
来源:互联网 发布:linux串口读取gps数据 编辑:程序博客网 时间:2024/05/29 16:22
1
2
2.1
应用array()函数声明数组时,数组下边既可以是数值索引也可以是关联索引。下标与数组元素之间用“=>”连接,不同数组元素之间用逗号分割。
<?php
//数组的声明
$arr= array("asp","php","jsp");
print_r($arr);
echo $arr[1]."<br>";
?>
结果为:Array ( [0] => asp [1] => php [2] => jsp ) php
Array()函数声明数组比较灵活,可以再函数整体中只给出数值元素值,而不必给出键。
2.2
另一种比较灵活的数组声明方式是直接为数组元素赋值。
//数组的声明
$arr= array("asp","php","jsp");
print_r($arr);
echo $arr[1]."<br>";
//数组的赋值
$arr[1] = "java";
print_r($arr);
echo $arr[1]."<br>";
?>
输出结果为:Array ( [0] => asp [1] => php [2] => jsp ) php
Array ( [0] => asp [1] => java [2] => jsp ) java
3
3.1
数字索引即是我们平常最常见到的数组形式—键-值对方式,下标必须是数字,而且从0开始
<?php
$array[1]="H";
$array[2]="P";
$array[3]="日";
$array[4]="记";
print_r($array);
echo $array[3];
echo "<br>";
?>
结果为:Array ( [0] => P [1] => H [2] => P [3] => 日 [4] => 记 ) 日
3.2
关联数组的键名可以是数值的字符串混合形式,而不行数字索引那样键名只能是数字,只要键名中有一个不是数字,那么这个数组就称为关联数组。
<?php
print_r($att);
echo $att["first"]."<br>";?>
结果为:Array ( [first] => 1 [2] => 2 [third] => 3 ) 1
注* 无论键名或是值名,只要不是数字就必须加但引号或是双引号,若是数字不加也可无误执行。
4
PHP中对数组的输出可用:echo语句或print语句,使用者两种方式都只是对但一个元素输出,而通过print_r()函数可以将数组结构进行输出。
5
5.1
5.2
一个数组的元素如果是一个数组,则称这个数组为二维数组。
<?php
$str = array(
print_r($str)."<br>";
echo $str["水果"][1]
?>
结果为:Array ( [水果] => Array ( [1] => banana [second] => apple [3] => 3 ) [理科] => Array ( [0] => 化学 [3] => 计算机 [7] => 生物 ) [文科] => Array ( [chinese] => 语文[english] => 英文[geography] => 历史 ) )
Banana
注*
按照同样的思路,可以创造更高维的数组,如三维数组。
6
6.1
遍历数组最常见的方法是只用foreach结构,foreach结构并非操作数组本身,而是操作数组的一个备份。
<?php
$str = array(
foreach($str as $link){
?>
结果为:banana
化学
语文
foreach结构实际操作的是$link变量。
Foreach结构一次性把数组所有的值输出,避免了使用echo输出语句一个一个输出,大大提高了工作效率。
6.2
下面通过list函数结合each函数综合应用,获取数组中的键值对。
<?php
$str = array(
while(list($key,$value)=each($str)){
?>
结果为:1=banana
3=化学
4=语
注* :与foreach遍历数组的不同之处有:foreach输出的结果只有数组元素,而list()函数输出的结果有键值对。
7
合并数组顾名思义是把一个数组追加到另一个数组中去,主要使用array_merge()函数来实现。array_merge()函数有个特点:相同的,且为字符串的键名,对应的元素会被后面的元素覆盖;相同的,且为数字的键名,对应的元素不会被后面的额元素覆盖,而是附加到后面!
<?php
$arr = array(1=>"first1","second"=>"er","third"=>"san");
$arr1 = array(1=>"second1","second" =>"second");
$rel = array_merge($arr,$arr1);
while(list($key,$value)=each($rel)){
?>
结果为:0 = first1
second = second
third = san
1 = second1
注* :array_merge_recursive()函数的功能与array_merge()函数的功能相似,也是用来合并数组的,不同之处就是他会保留:相同的,且为字符串的键名,对应的元素,并把它附加都后面。
8
8.1
explode()函数将字符串依指定的字符串或定界符separator切开,返回有字符串组成的数组。
<?php
$art = "php*asp*jsp*java*.net*android";
$str = explode("*",$art);
while(list($key,$value)=each($str)){
?>
结果为:0 = php
1 = asp
2 = jsp
3 = java
4 = .net
5 = android
注* :若定界符seperator为空,则explode()函数返回false;若定界符seperator所包含的字符在字符串中找不到,则explode()函数以整个字符串返回为一个数组。
8.2
Implode()函数的功能无explode()函数的功能完全相反,但语法相似。
<?php
$str = array('php','jsp','asp','java','android','ios','.net');
$rel = implode(" ",$str);
echo $rel;
?>
结果为:php jsp asp java android ios .net
9
在PHP中,使用count()函数对数组中的元素个数进行统计。
<?php
$str = array('php','jsp','asp','java','android','ios','.net');
$rel =count($str);
echo $rel;
?>
结果为:7
注* :count($array,COUNT_RECURSIVE)递归的对数组计数,对计算多维数组的所有单元尤其有用。
10
对数组进行排序可以简化编程,提高程序执行的效率
10.1
<?php
$str = array('php','jsp','asp','java','android','ios','.net');
//$str = array(1,3,5,7,0,33,55,77,22);
$str1 = sort($str);
for($i=0;$i<count($str);$i++){
?>
结果为:.net
注* : sort()函数有两个参数,原型为:sort($array,sort_flag)
参数sort_flag的取值有三个,分别是:SORT_NUMBER(元素被作为数字来比较),SORT_REGULAR(按相应的ASCII码值排序),SORT_STRING(按正常顺序对元素排序).
10.2
rsort()函数的功能与sort()函数的功能相反,参数用法相似。
10.3
PHP除了提供升序降序的排序外,还提供了关联数组排序。关联数组排序可分为按键排序ksort()和按值排序asort()。参数的用法和升序排序一样!
assort()函数例:
<?php
$str = array(1=>"apple",3=>"pear",2=>"water");
$boo = asort($str);
foreach($str as $link){
?>
结果为:apple pear water
Ksort()函数例:
<?php
$str = array(1=>"apple",3=>"pear",2=>"water");
$boo = ksort($str);
foreach($str as $link){
?>
- php数组
- PHP 数组
- Php数组
- php数组
- PHP 数组
- PHP数组
- php数组
- php数组
- PHP 数组
- php数组
- PHP 数组
- PHP 数组
- php数组
- php数组
- PHP数组
- php数组
- 【php】数组
- php数组
- 红黑树-C语言实现
- 团队从小成长到大过程中应该注意的事
- Linux系统调用--getrlimit()与setrlimit()函数详解
- 插入排序
- 程序员最艰巨的十大任务
- php数组
- uva 1513 - Movie collection
- Windows下正确安装IAR的方法
- io模型学习总结: select, poll, epoll, aio
- acm 常用资源网站
- QDUOJ-67 表达式(贪心)
- 【数字图像处理】Canny图像边缘检测算法VC6.0+OpenCV实现
- 在eclipse远程调试jetty
- orcle_sql函数