标签:
1.一个数组中存的是多个内容,数组中的内容叫做"元素"
2.每个元素都是由键和值组成的 key/value,key下标value对应的值
$arr[]=0;$arr[2]=2; $arr[‘three‘]=3;
3.通过key使用值
下标有两种类型:一种是整数(索引数组),一种是字符串(关联数组)
4.[]来操作下标,也可以使用{}进行互换,建议用[]来指定下标
5.在使用下标时,如果是关联数组,一定要用引号,不要使用常量名称.
6.数组的自动增长下标,默认是从0开始的,自动增长的都是出现过的最大值加1
7.关联数组的字符串下标,不会影响所有下标的排列规则!
使用array()函数声明数组,默认是索引的下标,是从0开始
8.使用 =>符号指定下标
9.php5.4以后,可以像其他语言一样声明数组了
$arr =[‘aaa‘,‘bbb‘,3=>‘hello‘,‘cccccccc‘];
10.删除一个数组中的一个元素,unset()函数允许删除数组中的某个键.
但是要注意数组将不会重建索引,如果需要删除后重建索引,可以用array_values()函数.
应用实例:猴子选大王
<?php function selectking($m,$n){ $arr=array(); $a =‘a‘; for($i=0;$i<$m;$i++){ $arr[] = $a++; } $j = 0; while(count($arr)>1){ if($j%$n==0){ unset($arr[$j]); }else{ $arr[] =$arr[$j]; unset($arr[$j]); } $j++; } return $arr; } var_dump(selectking(30,3)); ?>
数组的遍历
一.使用for语句循环遍历数组(保证数组,一定要是下标连续的索引数组)
不足:
1.数组下标不一定是连续的
2.关联数组for不能遍历出值
二.使用foreach语句遍历数组
foreach(数组 as 自定义变量){ ... }
1.数组有多少个元素,foreach就循环多少次
2.foreach会将数组中的元素 在每次循环中,依次将元素的值给自定义的变量,
在每次循环中用到这个变量,即用到了当前数组中的元素.
foreach(数组 as 下标变量 =>值变量){ if(is_array()) ... }
三.联合使用list(),each()和while循环遍历数组
list()函数 但这个函数和其他函数的用法不同
作用: 将数组中的元素转为变量使用
1.等号左边使用list()函数,等号右边只能是一个数组
2.数组中有几个元素,在list()中就有几个参数,而且参数必须是变量(新声明的自定义变量),不能是值
list($a,$b,$c) = array(‘zhangsan‘,‘lisi‘,‘wangwu‘);
3.只能将索引数组(下标是连续的),转为变量,是按下标0开始找的.
4.可以在list()参数中通过空项选择性的接收数组中的元素
list($a, ,$c) = array(‘zhangsan‘,‘lisi‘,‘wangwu‘);
each()只是一个函数,参数就是一个数组作为参数,返回的值,也是一个数组
1.返回的值是一个数组,数组固定有4个元素,而且下标也是固定的, 1(值) value(值) 0(下标) key(下标)
2.each()只处理当前的元素(默认当前元素是第一个元素,指针指向第一个元素),将当前的元素转为数组信息,处理完后,指针向下一个元素移动
3.如果指针已经在结束位置了,再使用each()获取元素,返回false
$arr = array(‘zhangsan‘,‘lisi‘,‘wangwu‘); while(list($key,$val) = each($arr)){ echo $key.‘,‘$val.‘<br/>‘; }
使用数组的内部指针控制函数遍历数组
next(),prev(),end()及reset()
这四个函数可以控制目前数组中的指针位置.next()负责将指针向后移动,prev()负责将指针向前移动;end()会将指针指向数组中最后一个元素,而reset()函数则会将目前指针无条件移至第一个索引位置,这几个函数的参数都是数组.
key()获取当前数组的key键名,current()获取当前数组的value键值.
超全局数组(变量),在php的脚本中,已经声明完的变量,你可以直接就去使用即可!变量的名字已经规定好的了.
$_SERVER
$_ENV
$_GET
$_POST
$_REQUEST
$_FILES
$_COOKIE
$_SESSION
$_GLOBALS
1.数组(关联数组),就和我们自己声明的数组是一样的操作方式
2.全局
3.每个预定义的数组都有自己独特的功能
标签:
原文地址:http://www.cnblogs.com/gimin/p/5886930.html