PHP 数组(遍历)

时间:2023-06-26 23:18:20

数组定义
$attr = array(); //定义一个空的数组
$attr = array(1,2,3,4); //定义一个有值的数组
$attr[0]="aa";
$attr[1]="bb";

数组分为两种
1.索引数组
$attr = array(1,2,3,4,5);
print_r($attr);   //输出数组
2.关联数组
$attr = array("code"=>101,"name"=>"张三","sex"=>"男");
print_r($attr);
echo $attr["name"];

遍历数组
$attr = array("aa","bb","cc","dd");

1.for循环遍历,只能遍历索引数组
for($i=0;$i<count($attr);$i++)
{
 echo $attr[$i]."<br>";
}

2.foreach遍历,关联索引都支持
foreach($attr as $v)
{
 echo $v."<br>";
}

foreach($attr as $k=>$v)
{
 echo $k."---".$v."<br>";
}

3.使用each()和list()结合遍历
var_dump(each($attr)); //取数组里面当前指针指向的元素
list($a,$b,$c,$d)=$attr; //写在等号左边的,将数组里面的元素交给一组变量,数组必须是索引数组

while(list($k,$v) = each($attr))
{
 echo "{$k}--{$v}<br>";
}

4.使用指针遍历
current($attr); //取当前指针指向的元素的值
echo key($attr); //取当前指针指向的元素的key
next($attr); //将指针向后调一个
next($attr);
prev($attr); //将指针向前调一个
end($attr); //将指针指向最后
reset($attr); //将指针重置
echo current($attr);

while(next($attr))              //无法输出第一个元素,使用do...while循环
{
 echo current($attr);
 echo key($attr);
}

do
{
 echo current($attr);
 echo key($attr);
}
while(next($attr))

其他常用函数

foreach($attr as $k=>$v)
{
 if($v==3)
 {
  unset($attr[$k]);//删除元素
 }
}
$attr = array_values($attr); //重新索引

var_dump(in_array(9,$attr));//判断某一个值是否在数组里面存在
var_dump(array_reverse($attr));//翻转数组,创建新的数组并返回
var_dump(array_unique($attr)); //去重,删除数组中重复的值并返回新的数组
$attr1 = array(9,10);
var_dump(array_merge($attr,$attr1));//合并数组
array_push($attr,10); //添加元素到数组,返回值不是新的数组
var_dump($attr);
$attr[]=11; //添加元素到数组