1:如果数组是有序的,可以直接使用for循环来循环数组
例子:
<?php
$a = array(1,2,3,4,5,6);
for($i=0;$i<count($a);$i++)
{
echo "\$a[{$i}]=".$a[$i]."<br>";
}
?>
输出结果:
$a[0] = 1;
$a[1] = 2;
$a[2] = 3;
$a[3] = 4;
$a[4] = 5;
$a[5] = 6;
2:如果数组是无序的,那么需要使用foreach,foreach既可以输出数组的键也可以输出值得;
如果需要输出键:
foreach($数组变量 as $key=>$value)
{
}
如果不需要键
foreach($数组变量 as $value)
{
}
<?php
$total = array(
"user"=>array(
array("张三",18,100),
array("李四",20,70),
array("王五",14,80),
),
"scoure"=>array(
array(110,50),
array(120,60),
array(130,130)
),
"email"=>array(
array("abc@qq.com"),
array("def@qq.com"),
array("ghi@qq.com"),
)
);
foreach($total as $key=>$value)
{
echo '<table align="center" border="1px" width="800"><caption><h1>'.$key.'</h1></caption>';
foreach($value as $info)
{
echo '<tr>';
foreach($info as $message)
{
echo '<td>'.$message.'</td>';
}
echo '</tr>';
}
echo '</table>';
}
?>
输出结果:
3:使用each进行遍历;
A:each()需要传入一个数组变量作为参数,并且返回的是一个参数或者是false,默认输出参数的第一个元素;
B:输出的结果为4对键值的数组:键分别为key 0 value 1,其中key与0为元素的键,value与1为元素的值
C:每调用一次each()会使参数数组的指针往回,直到最后,each()输出false;
<pre name="code" class="php">$array = array('key1'=>'value1','key2'=>'value2');
$temp = each($array);//指针在(key1=>value1)
echo '<pre>';
print_r($temp);
echo '</pre>';
/*Array
(
[1] => value1
[value] => value1
[0] => key1
[key] => key1
)*/
$temp = each($array);<span style="font-family: Arial, Helvetica, sans-serif;">//指针在(key2=>value2)</span>
echo '<pre>';
print_r($temp);
echo '</pre>';
/*Array
(
[1] => value2
[value] => value2
[0] => key2
[key] => key2
)*/
//如果再执行一次each()输出的就是false了
D:each()主要搭配while来进行遍历,因为while是使用条件来判断循环是否继续,如果遍历过一遍之后想再遍历需要重置指针,否则each()一直输出false
数组内部指针函数有
next()指针往后移一
pre()指针往前移一
reset()重置指针到开始
end()将指针设置到最后
current()获取当前指针的值
key()获取当前指针的键
$array = array('key1'=>'value1','key2'=>'value2');
while($temp = each($array))
{
echo '<pre>';
print_r($temp);
echo '</pre>';
}
输出的结果与上面的一样
4:使用list()将数组中的元素直接转换成变量*list()只能作用于数字索引数组。
A:list()使用比较特殊,需要将一个数组赋值给list()这个函数
B:数组中有多少个元素,list()函数就需要设置多少个参数,可以直接一个空的参数
$array = array(1,2,3)
list(num1,num2,num3) = $array;
echo $num1;//输出1
echo $num2;//输出2
echo $num3;//输出3
如果只需要第三个元素,那么list()中的参数可以写成
list(,,num3)即可
C:通常搭配于字符串使用,当对字符串进行分割后,可以直接将字符串中需要的部分转换成变量
==========================================================================================================================
使用while() list() each()进行遍历
$array = array('key1'=>'value1','key2'=>'value2','key3'=>'value3','key4'=>'value4');
while(list($key,$value) = each($array))
{
echo $key.'===>'.$value.'<br>';
}
//输出
key1===>value1
key2===>value2
key3===>value3
key4===>value4、