這段時間偷懶放鬆去老~啊哦~來回憶下關於數組在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/>';
?>
懶得寫了。就附加源代碼,希望對大家有點參考。