这段时间偷懒放松去老~啊哦~来回忆下关于数组在PHP中的使用。C语言或者C++一类语言,数组虽然很强大,但指针却是个老大难问题。而在PHP中基本不存在这种情况,数组可以理解为一个有向图,初学者能较短时间理解并运用它(我也是初学者~)。
PHP中数组分为两种,一是索引数组,二是关联数组。数组形式均为array(key1=>value1,key2=>value2,·····)key称为键值,value则是数组元素。索引数组就是键值为整数值,而关联数组则为字符串,这就是两者不同之处。只需记住若是任意某一数组元素的键值为字符串,则该数组为关联数组。在PHP中多维数组中二维常见,其他维数类比即可。
二维数组的数组元素仍为数组
array(key1=>array1(key1=>value1,),key2=>array2(key2=>value2),·····)
关于数组的输出,全部输出可以用Var_dump(),也可以用for或者foreach循环。不过需要注意前者只能用于索引数组,而后者则不存在这种情况。for的使用同C,而foreach可以说说。
一种是输出数组元素:
foreach (array() as $value) {
echo $value;
echo "<br/>";
}
另一种则是输出键值和数组元素:
foreach ( array() as $key=>$value) {
echo $key."=>".$value.'<br/>';
}
关于foreah的实例:
<?php
$arr=array(1, 3, "for"=>4, 5, 6, 7, 8,9,10=>"aa",
"bb", "cc");
/*for($i=0; $i<count($arr); $i++){
echo "\$arr[".$i."]=".$arr[$i]."<br>";
}*/
/*当 foreach 开始执行时,数组内部的指针会自动指向第一个单元。
此外注意foreach 所操作的是指定数组的一个拷贝,而不是该数组本身*/
/* foreach ($arr as $value) {
var_dump ($value);
echo '<hr/>' ;*/
foreach ($arr as $key =>$value) {
echo $key.'=>'.$value;
echo '<hr/>' ;
}
?>
我们还可以用list()和each()对数组进行遍历。
<?php
/**********************************************************************/
/*****array each ( array array)******/
/*****返回 array 数组中当前指针位置的键/值对并向前移动数组指针。******/
/*****键值对被返回为四个单元的数组,键名为 0,1,key 和 value。
/*****单元 0 和 key 包含有数组单元的键名,1 和 value 包含有数据。******/
/*****如果内部指针越过了数组的末端,则 each() 返回 FALSE。 ******/
/*****each() 经常和list( ) 结合使用来遍历数组。******/
/*****void list ( mixed ...)******/
/*****它不是真正的函数,而是语言结构。list() 用一步操作给一组变量进行赋值。******/
/***** 注: list() 仅能用于数字索引的数组并假定数字索引从0开始。******/
/*****在执行 each() 之后,数组指针将停留在数组中的下一个单元或者当碰到数组******/
/*****结尾时停留在最后一个单元。如果要再用 each 遍历数组,必须使用reset( )。******/
/*****************************************************************/
$fruit = array('a'=>'apple','b'=>'banana','c'=>'cranberry');
reset($fruit);//reset() 函数把数组的内部指针指向第一个元素,并返回这个元素的值。若失败,则返回 FALSE。
while(list($a,$b)=each($fruit)) {
echo "$a => $b\n";
}
?>
<?php
$fruit = array('a'=>'apple','b'=>'banana','c'=>'cranberry');
reset($fruit);//reset() 函数把数组的内部指针指向第一个元素,并返回这个元素的值。若失败,则返回 FALSE。
while($temp=each($fruit)) {
//echo $temp[0]."===>".$temp[1]."<br>";
echo $temp['key']."===>".$temp['value']."<br>";
}
echo '<hr/>';
?>
懒得写了。就附加源代码,希望对大家有点参考。