php数组
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():在数组尾添加元素。


浙公网安备 33010602011771号