一、遍歷數組
1、使用foreach結構遍歷數組
foreach 結構并非操作數組本身,而是操作數組的一個備份。
<?php
$arr = array("mon"=>"星期一","tues"=>"星期二","wed"=>"星期三","thur"=>"星期四","fri"=>"星期五","sat"=>"星期六","sun"=>"星期天");
foreach($arr as $day){
echo $day." ";
}
?>
輸出結果:
星期一 星期二 星期三 星期四 星期五 星期六 星期天
<?php
$arr = array("mon"=>"星期一","tues"=>"星期二","wed"=>"星期三","thur"=>"星期四","fri"=>"星期五","sat"=>"星期六","sun"=>"星期天");
foreach($arr as $key=>$value){
echo $value."($arr[$key])($key)";
}
?>
輸出結果:
星期一(星期一)()星期二(星期二)()星期三(星期三)()星期四(星期四)()星期五(星期五)()星期六(星期六)()星期天(星期天)()
這里復習了循環迭代的使用方式,我自己在測試的時候不知道為什么這個$key是未提示非法的參數,這個原因待檢查。
forech的語法格式:
foreach(array_expression as $value){ .... }
foreach(array_exoression as $key=>$value){ ..... }
2、使用list()函數遍歷數組
list()函數是把數組中的值賦值給一些變量。與array()函數類似,list()函數不是一個真正的函數,而是一種語言結構。list()函數只能用于數字索引且索引值從0開始的數組。
語法格式:void list(mixed....);
參數 mixed 為被賦值的變量名稱
list函數使用過程中還有一個each()函數。each()函數用于返回當前指針位置的數組值,同時將指針推進到下一個位置。返回的數組包含4個鍵,鍵0和key包含鍵名,而鍵1和value包含相應的數據。如果程序在執行的each()函數時指針已經位于數組末尾,則返回false
<?php
$arr = array("早上","下午","晚上");
while(list($index,$value)=each($arr)){
echo "$index - $value <br/> ";
}
?>
輸出結果:
0 - 早上
1 - 下午
2 - 晚上
二、字符串和數組的轉換
1、使用explode()函數將字符串轉換為數組
語法格式:array explode(string separator,string string,[int limit]);
返回值是一個字符串組成的數組,每個數組元素都是指定字符串string的一個子串。它們使用separator作為分隔符分隔出來。如果設置了limit參數,則返回的數組最多包含limit個元素,最后那個元素將包含strIng的剩余部分。如果separator是一個空字符串(“”),則函數返回false,如果separator的值在string中找不到,那么函數返回包含strIng單個元素的數組。如果參數limit是負數,則返回除了最后的limit個元素外的所有元素。
<?php
$str = "早上,下午,晚上";
$arr = explode(",",$str);
print_r($arr);
?>
輸出結果:
Array ( [0] => 早上 [1] => 下午 [2] => 晚上 )
<?php
$str = "一月#二月#三月";
$arr = explode("#",$str);
while(list($index,$value) = each($arr)){
echo "$index - $value <br/>";
}
?>
輸出結果:
0 - 一月
1 - 二月
2 - 三月
2、使用implode()函數將數組轉換為一個新字符串
語法格式:string implode(string glue,array pieces);
參數glue是字符串類型,是要傳入的分隔符。參數pieces是數組類型,是要合并元素的數組變量名稱。
<?php
$arr = array("一月","二月","三月");
$str = implode("@",$arr);
echo $str;
?>
輸出結果:
一月@二月@三月


三、統計數組元素個數
語法格式:int count(mixed array,[int mode]);
參數array 是要統計的數組,參數mode是可選參數,值為0或者COUNT_RECURSIVE(1)。如果選中此參數,本函數將遞歸的對數組計數。對計算多維度數組的所有單元尤其有用。默認值是0。
比如統計一個二位數組的時候,直接默認使用函數只會統計一維數組的個數,而使用了COUNT_RECURSIVE 會統計到二維數組的個數,
<?php
$arr = array("一月","二月","三月");
$count = count($arr);
echo $count;
?>
輸出結果:
3
<?php
$arr = array(
"早上" => array("7點","9點"),
"下午" => array("13點","14點","15點")
);
$count1 = count($arr);
$count2 = count($arr,COUNT_RECURSIVE);
echo "mode為0的值:".$count1;
echo "<br/>";
echo "mode為 COUNT_RECURSIVE 的值:".$count2;
?>
輸出結果:
mode為0的值:2
mode為 COUNT_RECURSIVE 的值:7
四、查詢數組指定元素
語法格式:mixed array_search(mixed needle,array haystack,[bool strict]);
參數needle是指定數組中要搜索的值,參數haystack是指定要被搜索的數組,參數strict是可選參數,如果值是true,還將在數組中檢查給定值的類型。找到后返回鍵名,否則會返回false。在早期版本中,函數失敗會返回null,而不是false。
<?php
$arr = array("早上","下午","晚上");
$key = array_search("下午",$arr);
if($key==false){
echo "沒有找到";
}
else{
$arr[$key] = "明天下午";
}
print_r($arr);
?>
輸出結果:
Array ( [0] => 早上 [1] => 明天下午 [2] => 晚上
這里是尋找下午,如果返回false,打印沒有找到,否則修改該值為明天下午,最后輸出結果數組。
五、獲取數組中的最后一個元素
語法格式:mixed array_pop(array array);
參數array為要查找的數組。array_pop()函數獲取并返回了數組的最后一個元素,并將數組的長度減1,如果數組為空,或者不是數組,將返回null。
<?php
$arr = array("早上","下午","晚上");
$str = array_pop($arr);
$count = count($arr);
echo "最后一個的是:".$str;
echo "<br/>";
echo "數組長度:".$count;
echo "<br/>";
print_r($arr);
?>
輸出結果:
Array ( [0] => 早上 [1] => 明天下午 [2] => 晚上 )
最后一個的是:晚上
數組長度:2
Array ( [0] => 早上 [1] => 下午 )
注意:該函數會取出值并數組長度會減小


六、向數組中添加元素
語法格式:int array_push(array array,mixed var,[mixed....]);
參數array是指定的數組,參數var是要添加的數組元素的值。Array_push()函數將數組當成一個棧,將傳入的變量加入到該數組的末端,數組的長度隨著入棧變量數目的增加而增加。返回數組新的單元總數。
<?php
$arr = array("一月","二月","三月");
$count = array_push($arr,"四月","五月");
echo "數組長度:".$count;
echo "<br/>";
print_r($arr);
?>
輸出結果:
數組長度:5
Array ( [0] => 一月 [1] => 二月 [2] => 三月 [3] => 四月 [4] => 五月 )
七、刪除數組中的重復元素
語法格式:array array_unique(array array);
參數arrray是輸入的數組。將數組元素的值作為字符串排序,然后對每個值只保留第一個鍵名,忽略所有后面的鍵名,也就是刪除數組中的重復元素。
<?php
$arr = array("1"=>"一月","2"=>"二月","3"=>"三月","4"=>"四月","5"=>"三月","6"=>"一月");
echo "處理前:";
print_r($arr);
echo "<br/>";
$af_arr = array_unique($arr);
echo "處理后:";
print_r($af_arr);
?>
輸出結果:
處理前:Array ( [1] => 一月 [2] => 二月 [3] => 三月 [4] => 四月 [5] => 三月 [6] => 一月 )
處理后:Array ( [1] => 一月 [2] => 二月 [3] => 三月 [4] => 四月 )
明天我們來看看php里的日期和時間
版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。