編程怎么能少的了數(shù)組呢,以下是學(xué)習(xí)php時(shí)常用的數(shù)組處理函數(shù)。在編程中要遵循一個(gè)原則就是dry(don`t repeat yourself)原則,php中有大量的函數(shù),都記住這些函數(shù)不太現(xiàn)實(shí),但常用的函數(shù)還是要熟練使用的,大部分的函數(shù)的使用方法可以通過(guò)查詢php的手冊(cè)來(lái)使用。
在編程中查手冊(cè)是少不了的,所以要會(huì)學(xué)著使用已有的東西,就如php中的數(shù)組處理函數(shù)已經(jīng)有排序函數(shù)了,為什么還要在寫(xiě)東西是費(fèi)著勁去寫(xiě)冒泡或者堆排或者快排呢。
編程是間接的過(guò)程,也是重用的過(guò)程,要寫(xiě)出好的代碼是少不了設(shè)計(jì)模式來(lái)做支撐的,可能對(duì)初學(xué)者來(lái)說(shuō)學(xué)習(xí)設(shè)計(jì)模式有些吃力(就像我當(dāng)初看設(shè)計(jì)模式時(shí),真是有點(diǎn)費(fèi)勁),不過(guò)等你的代碼量有一定積累時(shí),在研究設(shè)計(jì)模式時(shí),感覺(jué)設(shè)計(jì)模式真的挺有用的,能幫助你寫(xiě)出漂亮的代碼。說(shuō)著說(shuō)著有點(diǎn)跑偏了,還是來(lái)總結(jié)一下php中對(duì)數(shù)組操作的常用函數(shù)吧。
以下總結(jié)的數(shù)組常用的函數(shù),可能有些讀者會(huì)感覺(jué)有些少,眾人拾柴火焰高嗎,如果感覺(jué)還有其他常用的數(shù)組處理函數(shù),給個(gè)評(píng)論留下唄,不要吝嗇自己的知識(shí)嘛,和別人分享東西不是一件很快樂(lè)的東西嗎。還有,下面的代碼出自本人之手,不過(guò)是兩年前寫(xiě)的代碼了,歡迎大家批評(píng)指正。
array_splice() 刪除數(shù)組中的指定元
array_splice(數(shù)組名,從前往后刪的個(gè)數(shù),new一個(gè)數(shù)組的大小);沒(méi)有第三參數(shù)也就沒(méi)有返數(shù)組,沒(méi)有第三個(gè)參數(shù)時(shí),第二個(gè)參數(shù)的意義為從前往后保留幾個(gè)
exp:
$my_array=array( //建立數(shù)組
hehe=>haha,
a=>lu,
lu=>ge
);
$new=array_splice($my_array,1,3); //使用array_splice(數(shù)組名,從前往后刪的個(gè)數(shù),new一個(gè)數(shù)組的大小);
var_dump($new);
?>
結(jié)果:array(2) { [a]=> string(2) lu [lu]=> string(2) ge }
2、foreach()數(shù)組的遍歷
用法:foreach(數(shù)組 as 鍵名=>鍵值)或foreach(數(shù)組 as 鍵值)
exp:
$my_array=array( //建立數(shù)組
hehe=>haha,
a=>lu,
lu=>ge
);
foreach($my_array as $key=>$value)
{
echo $key.=>.$value.
;
}
?>
輸出結(jié)果:
hehe=>haha
a=>lu
lu=>ge
3、數(shù)組的排序
(1)sort()和rsort() 按鍵值排序sort()從小到大,rsort()從大到小
sort () exp :
$my_array=array(1,2,3,6,7,8,9,4,5);//建立數(shù)組
sort($my_array);
foreach($my_array as $keys=>$value)
{
echo $keys.=>.$value.
;
}
?>
輸出結(jié)果:
0=>1
1=>2
2=>3
3=>4
4=>5
5=>6
6=>7
7=>8
8=>9
rsort() exp:
$my_array=array(1,2,3,6,7,8,9,4,5);//建立數(shù)組
rsort($my_array);
foreach($my_array as $keys=>$value)
{
echo $keys.=>.$value.
;
}
?>
輸出結(jié)果:
0=>9
1=>8
2=>7
3=>6
4=>5
5=>4
6=>3
7=>2
8=>1
(2).asort()和arsort()和上面的原理一樣,不過(guò)不改變鍵名和鍵值的對(duì)應(yīng)關(guān)系
exp:
$my_array=array(1,2,3,6,7,8,9,4,5);//建立數(shù)組
asort($my_array);
foreach($my_array as $keys=>$value)
{
echo $keys.=>.$value.
;
}
?>
輸出結(jié)果:
0=>1
1=>2
2=>3
7=>4
8=>5
3=>6
4=>7
5=>8
6=>9
(3)ksort()和krsort()是按鍵名的大小排序
4.數(shù)組的數(shù)學(xué)類函數(shù)
array_sum()計(jì)算數(shù)組的所有鍵值的和 count()計(jì)算元素的個(gè)數(shù)
exp:
$my_array=array(1,2,3,6,7,8,9,4,5);//建立數(shù)組
echo array_sum($my_array);
?>
輸出結(jié)果:45
5.其他函數(shù)
array_unique() 去除數(shù)組中的相同元素
in_array()檢測(cè)一個(gè)值是否在數(shù)組中(返回true和false)
array_search()返回的是鍵或值,返回的是鍵值所對(duì)應(yīng)的鍵名
shuffle()打亂原有的數(shù)組
$my_array=array(1,2,3,6,7,8,9,4,5,5,5,5);//建立數(shù)組
array_unique($my_array);//去除數(shù)組中的相同元素
var_dump($my_array);
echo
;
echo in_array(5,$my_array);
echo
;
$new=array_search(6,$my_array);//返回的是鍵值所對(duì)應(yīng)的鍵名
echo $new;
?>
輸出結(jié)果:
array(12) { [0]=> int(1) [1]=> int(2) [2]=> int(3) [3]=> int(6) [4]=> int(7) [5]=> int(8) [6]=> int(9) [7]=> int(4) [8]=> int(5) [9]=> int(5) [10]=> int(5) [11]=> int(5) }
1
3
更多信息請(qǐng)查看IT技術(shù)專欄