php中存在两种数组,一种为索引,一种为关联。
定义一个数组:
$arr = array();,这样为定义一个空数组,如果在()内写上内容则表示该数组定义了内容;
echo $arr[0];:表示输出第一个数据;
关联数组:
$arr = array("code" = >"p001","name" = >"张三");
echo $arr["name"];,即可输出张三;
赋值定义:$arr[0] = "张三"; $arr[1] = "李四";,这样同样可以定义一个数组;
遍历数组:
首先先定义一个数组:
$arr = array("p001","张三",1,"n001","1988-2-3");
1.for循环:
for($i=0;$i<count($arr);$i++){ echo "{$arr[$i]}<br>"; //或写成echo $arr[$i]."<br>"; }
2.foreach遍历:
方法一:取值,每循环一次,将一个元素交给变量;
foreach($arr as $v){ echo "{$v}<br>"; }
方法二:取索引,加值;
foreach($arr as $v){ echo"{$k}-{$v}<br>"; }
区别:for循环只能遍历索引数组,如果是关联数组,需要使用foreach遍历;
3.list()和each()函数配合遍历数组:
$a1 = each($arr); //执行1次去第一个,执行2次取第二个,直到没有元素为止,取出数组当前指针指向元素的内容,交给一个小数组 list($a,$b)=$arr; //将数组内的元素赋值给一组变量 var_dump($a); while(list($k,$v)=each($arr)){
echo"{$k}-{$v}<br>"
}
4.指针遍历
key($arr);:取当前指针指向元素的索引;
current($arr);:取当前指针指向元素的值;
next();:将指针往下调一个;
prev($arr);:将指针往上调一个;
end($arr);:将指针指向最后一个;
reset($arr);:将指针位置重置,指向第一个;
do{ echo key($arr); echo current($arr); //会先执行再判断 } while(next($arr))
一维数组:一个数组包含有元素;
二维数组:一个数组里面包含的元素也是一个数组
$arr = array( array(1,2,3), array(4,5,6), array(7,8,9) ); echo $arr[1][1] //先从外层数组取值,再从里面一层数组取值。 //输出5
以上便是一个二维数组。
遍历这个二维数组:
方法一:
foreach($arr as$v){ echo"{$v[0]}-{$v[1]}-{$v[2]}<br>"; }
方法二:
foreach($arr as$v){ foreach($v as $v1){ echo "{$v1}<br>"; } }
例1:制作民族下拉列表:
$arr = array( array("n001","汉族"), array("n002","回族"), array("n003","满族"), array("n004","藏族"), ); echo"<select>"; foreach($arr as $v){ echo"<option value=‘{$v[0]}‘>{$v[1]}</option>"; }; echo"</select>"
例2:制作一个info表的二维数组,用表格显示
info = array( array("001","张三","1973-2-8"), array("002","李四","1982-10-29"), array("003","王五","1953-7-11"), ); echo"<table>"; foreach($info as $i){ echo" <tr> <td>$i[0]</td> <td>$i[1]</td> <td>$i[2]</td> </tr> "; }; echo"</table>";
预定义数组:
_GET:HTML中使用get方式传递的数据;
_POST:HTML中使用post方式传递的数据;
_REQUEST:以上两种方式的数据都可以获取;
_FILES:获取上传文件的数据;
_SESSION和_COOKIE:记录用户登录信息(状态保持作用);
其他常用函数:
in_array():检查数组中是否存在某值,存在返回true,不存在返回false;
array_reverse():将数组中的元素顺序翻转,创建新的数组并返回;
count():计算数组中的元素数目或对象中的属性个数;
array_unique():删除数组中重复的值并返回新的数组;
unset($arr[0]):删除数组的某个值;
array_values($arr):重新索引;
array_merge():合并数组;
array_push():在数组尾添加元素。