PHP数组
数组定义
<body> <?php $arr=array();//定义空数组 $arr1=array(1,2,3,2,2);//数组赋值,索引从0开始 ?> </body>
关联数组
<body> <?php $arr2=array("code"=>"p001","name"=>"张三");//索引是code的值为p001,索引为name的值为张三 var_dump($arr2); ?> </body>
赋值定义数组
<body> <?php $arr[0]="张三"; $arr[1]="李四"; var_dump($arr); ?> </body>
array (size=2)
0 => string '张三' (length=6)
1 => string '李四' (length=6)
遍历数组
1、for循环遍历(只能遍历索引数组)
<body> <?php $arr=array("p001","张三",1,"n001","1988-2-3"); for($i=0;$i<count($arr);$i++){ echo $arr[$i]."<br>"; // 哪个都行 //echo "{$arr[$i]}<br>"; } ?> </body>
2、foreach遍历 (没有限制)
<body> <?php $arr=array("p001","张三",1,"n001","1988-2-3"); foreach($arr as $v){ echo "[$v]<br>"; }//数组取值 ?> </body>
<body> <?php $arr=array("p001","张三",1,"n001","1988-2-3"); foreach($arr as $k=>$v){ echo "[$k-$v]<br>"; }//取索引和值 ?> </body>
3、函数配合遍历数组
list()和each()
<body> <?php $arr=array("p001","张三",1,"n001","1988-2-3"); $a= each($arr); var_dump($a);//执行一次取一次(从索引0到最后) //取出数组当前指针指向元素的内容交给一个数组 ?> </body>
<body> <?php $arr=array("p001","张三",1,"n001","1988-2-3"); list($a,$b,$c)=$arr;//将数组的元素赋值给一组变量,按顺序从索引0开始 var_dump(list($a,$b,$c)=$arr); ?> </body>
<body> <?php $arr=array("p001","张三",1,"n001","1988-2-3"); while(list($k,$v)=each($arr)){ echo"{$k}-{$v}<br>"; }//$k索引,$v值 each($arr)取出每个索引和值 ?> </body>
4、指针遍历
key()取当前指针指向元素的索引
current()取当前指针指向元素的值
next()指针下调一个
prev()指针上调一个
end()指针指向最后一个
reset()指针充值指向第一个
<body> <?php $arr=array("p001","张三",1,"n001","1988-2-3"); do{ echo key($arr);//取索引 echo current($arr);//取值 }while(next($arr))//先执行在条件然后在执行 ?> </body>
5、二维数组
<body> <?php $arr=array( array(1,2,3), array(4,5,6), array(7,8,9) ); echo$arr[1][1];//二维数组取值 ?> </body>
遍历二维数组
<body> <?php $arr=array( array(1,2,3), array(4,5,6), array(7,8,9) ); foreach($arr as $v){ echo"{$v[0]}-{$v[1]}-{$v[2]}<br>"; } ?> </body>
<body> <?php $arr=array( array(1,2,3), array(4,5,6), array(7,8,9) ); foreach($arr as $v){ foreach($v as $v1){ echo $v1; } }//foreach嵌套 ?> </body>
123456789
<?php $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>" ?>
数组常用函数
in_array()判断某个值是否在数组中存在
array
<body> <?php $arr=array(1,2,2,3,4,5); var_dump(in_array(6,$arr)); ?> </body>
存在返回true 不存在false
array_reverse()反转数组
<body> <?php $arr=array(1,2,2,3,4,5); var_dump(array_reverse($arr)); ?> </body>
array_unipue()去重
<body> <?php $arr=array(1,2,2,3,4,5); var_dump(array_unique($arr)); ?> </body>
unset($arr[1])删除数组元素
array_values()重新索引(删除数值后)
<body> <?php $arr=array(1,2,2,3,4,5); unset($arr[2]); var_dump(array_values($arr)) ?> </body>
array_push(数组,“值”) 在数组最后追加元素
<body> <?php $arr=array(1,2,2,3,4,5); array_push($arr,"100"); var_dump($arr) ?> </body>