php學(xué)習(xí) 數(shù)組課件
更新時(shí)間:2008年06月15日 12:56:49 作者:
數(shù)組是一個(gè)可以?xún)?chǔ)存一組或一系列值的變量。*
數(shù)組是一種基本的數(shù)據(jù)類(lèi)型。
數(shù)組函數(shù)還可以實(shí)現(xiàn)堆棧和隊(duì)列等數(shù)據(jù)結(jié)構(gòu)。
array_fill
array_fill讓使用者可以自定義數(shù)值,填滿(mǎn)目標(biāo)數(shù)組中指定的索引區(qū)段。
語(yǔ)法格式:array_fill(起始索引位置,區(qū)段大小,指定字元)
其中起始索引位置與區(qū)段大小必須為integer(整型)形態(tài)數(shù)值,而且區(qū)段大小指定不得為0。
$a = array_fill(5, 6, 'banana');
print_r($a);
輸出結(jié)果:Array([5] => banana[6] => banana[7] => banana[8] => banana[9] => banana[10] => banana)
array_filter
array_filter依次將目標(biāo)數(shù)組中的每個(gè)值傳遞到使用者自定義函數(shù)。如果使用者自定義函數(shù)返回 TRUE(真
),則 input 數(shù)組的當(dāng)前值會(huì)被包含在返回的結(jié)果數(shù)組中。數(shù)組的鍵名保留不變。
語(yǔ)法格式:array_filter(目標(biāo)數(shù)組,使用者自定義函數(shù))
function odd($var)
{
return($var % 2 == 1);
}
$array1 = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);
print_r(array_filter($array1, "odd"));
輸出結(jié)果:Odd :Array([a] => 1[c] => 3[e] => 5)
$entry = array(0 => 'foo',1 => false,2 => -1,3 => null,4 => '');
print_r(array_filter($entry));
輸出結(jié)果Array([0] =>foo[2] => -1)
其它的回調(diào)函數(shù):array_walk (), array_map()
array_flip
array_flip將目標(biāo)數(shù)組中的索引與內(nèi)容值,作反相的處理,反相后的數(shù)組會(huì)以原內(nèi)容值作為索引,而索引作為資料內(nèi)容.
array_flip語(yǔ)法格式:交換數(shù)組中的鍵和值
array_flip(目標(biāo)數(shù)組)
$trans = array("a" => 1, "b" => 1, "c" => 2);
$trans = array_flip($trans);
print_r($trans);
輸出內(nèi)容:Array([1] =>b[2] =>c)
如果同一個(gè)值出現(xiàn)了多次,則最后一個(gè)鍵名將作為它的值,所有其它的都丟失了。
array_sum
array_sum用來(lái)計(jì)算數(shù)組中所有元素值的總和。
語(yǔ)法格式:array_sum(目標(biāo)數(shù)組)
array_unique
array_unique用來(lái)除區(qū)目標(biāo)數(shù)組中重復(fù)的資料,并運(yùn)算后傳回新的數(shù)值。
array_keys與array_values
array_keys該函數(shù)將忽略原始的鍵名,使用順序的數(shù)字對(duì)數(shù)組重新索引,針對(duì)關(guān)聯(lián)數(shù)組。
array_values該函數(shù)返回一個(gè)包含數(shù)字或字符串的鍵名數(shù)組。返回 input 數(shù)組中所有的值并給其建立數(shù)字索引。
$arr=array("a"=>1,"b"=>2,"abc",2);
$b=array_keys($arr);
$c=array_values($arr);
輸出結(jié)果:$b=Array ( [0] => a [1] => b [2] => 0 [3] => 1 )
$c=Array ( [0] => 1 [1] => 2 [2] => abc [3] => 2 )
數(shù)組的檢索
對(duì)數(shù)組的檢索,主要指對(duì)數(shù)組的鍵名或者元素值進(jìn)行判斷,從而確定某個(gè)數(shù)組元素的存在與否。
語(yǔ)法格式:bool in_array(mixed $needle, array $haystack[,bool $strict]);
$arr3=array(1,2,3,"hello","wprld");
$b=in_array("hell",$arr3,true);
var_dump($b);
$arr4=array(1,2,3,array("hello","world"));
$b=in_array(array("hello","world"),$arr4);
var_dump($b);
輸出結(jié)果:bool(false) bool(true)
數(shù)組和變量之間轉(zhuǎn)換
extract()和compact()函數(shù)進(jìn)行數(shù)組與變量之間轉(zhuǎn)換。
轉(zhuǎn)換后, 數(shù)組元素的鍵名與變量名,以及元素的值與變量的值保持著對(duì)應(yīng)的關(guān)系。
extract這個(gè)函數(shù)用于將變量從數(shù)組中倒入當(dāng)前符號(hào)表中
$info = array("user_id"=>2006001,"user_name"=>"佟香玉", "position"=>"項(xiàng)目經(jīng)理");
extract($info);
echo $user_id;
輸出結(jié)果:2006001
compact()接受可變的參數(shù)數(shù)目。每個(gè)參數(shù)可以是一個(gè)包括變量名的字符串或者是一個(gè)包含變量名的數(shù)組,該數(shù)組中還可以包含其它單元內(nèi)容為變量名的數(shù)組, compact() 可以遞歸處理。
$city = "San Francisco";
$state = "CA";
$event = "SIGGRAPH";
$location_vars = array("city","state");
$result = compact("event","nothing_here",$location_vars);
print_r($result);
輸出結(jié)果:Array ( [event] => SIGGRAPH [city] => San Francisco [state] => CA )
數(shù)組與棧
array_push()函數(shù)將一個(gè)或多個(gè)元素壓入數(shù)組棧的末尾(入棧),返回入棧元素的個(gè)數(shù)。
array_pop()函數(shù)將數(shù)組棧的最后一個(gè)元素彈出,并將該元素返回。
范例array_push
$a=array("dsa","dsas","dfs","gfd");
array_push($a,"ssss","ddddd");
print_r($a);
輸出結(jié)果:Array ( [0] => dsa [1] => dsas [2] => dfs [3] => gfd [4] => ssss [5] => ddddd )
范例array_pop彈出并返回 array 數(shù)組的最后一個(gè)單元,并將數(shù)組 array 的長(zhǎng)度減一。如果 array 為空(或者不是數(shù)組)將返回 NULL。
$a=array("dsa","dsas","dfs","gfd");
array_pop($a);
print_r($a);
輸出結(jié)果:Array ( [0] => dsa [1] => dsas [2] => dfs )
數(shù)組與對(duì)列
隊(duì)列也可以以數(shù)組的形態(tài)出現(xiàn),數(shù)組中的第一個(gè)元素是對(duì)頭,最后是對(duì)尾。
在對(duì)尾插入元素可以使用堆棧的方法。
從隊(duì)列數(shù)組中刪除對(duì)頭元素可以使用array_shift函數(shù),該函數(shù)將數(shù)組的第一個(gè)元互移出并作為結(jié)果返回, 同時(shí),數(shù)組長(zhǎng)度減1,并且其他元素向前移動(dòng)一位。所有的數(shù)字鍵名將改為從零開(kāi)始計(jì)數(shù),文字鍵名將不改變。
array_shift范例
$a=array("dsa","dsas","dfs","gfd");
$title=array_shift($a);
print_r($a);
輸出結(jié)果:Array ( [0] => dsas [1] => dfs [2] => gfd )
可以使用array_unshift()函數(shù)在隊(duì)列數(shù)組的開(kāi)頭插入一個(gè)或多個(gè)元素,該函數(shù)返回成功插入元素個(gè)數(shù)。
$a=array("dsa","dsas","dfs","gfd");
$title=array_unshift($a,"a",array(1,2));
print_r($a);
輸出結(jié)果:Array ( [0] => a [1] => Array ( [0] => 1 [1] => 2 ) [2] => dsa [3] => dsas [4] => dfs [5] => gfd )
由結(jié)果可以看出 還可以插入數(shù)組
數(shù)組的排序
忽略鍵名的數(shù)組排序
sort()正
rsort()倒
usort()
$arr = array("3"=>"lemon", "2"=>"orange", "4"=>"banana", "1"=>"apple");
ksort($arr);
foreach ($arr as $key => $val) {
echo "$key = $val\n";
}
數(shù)組的計(jì)算
對(duì)數(shù)組的計(jì)算是比較方便的。最簡(jiǎn)單的計(jì)算是求數(shù)組內(nèi)部的所有元素之和。也可以把數(shù)組作為一個(gè)集合處理,對(duì)兩個(gè)或多個(gè)數(shù)組進(jìn)行合并,計(jì)算數(shù)組間的差集或交集等。
數(shù)組的合并 合并 并不是+
范例
$arr2=array(1,2,3);
$arr3=array(3,4,5);
$a=array_merge($arr2,$arr3);
print_r($a);
輸出結(jié)果:Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 3 [4] => 4 [5] => 5 )
計(jì)算數(shù)組的差集
$array1 = array("a" => "green", "red", "blue", "red");
$array2 = array("b" => "green", "yellow", "red");
$result = array_diff($array1, $array2);
print_r($result);
輸出結(jié)果:Array ( [1] => blue ) 差級(jí)是取前面的區(qū)別值
計(jì)算數(shù)組的交集
$array1 = array("a" => "green", "red", "blue");
$array2 = array("b" => "green", "yellow", "red");
$result = array_intersect($array1, $array2);
print_r($result);
輸出結(jié)果:Array ( [a] => green [0] => red ) 交集取上下兩邊共同都有的
創(chuàng)建指定范圍的數(shù)組:
range();
移除數(shù)組中重復(fù)的值:
array_unique();
逆序返回?cái)?shù)組:
array_reverse();
數(shù)組的隨機(jī)函數(shù):隨機(jī)數(shù)
srand((float) microtime()*10000000)設(shè)置隨機(jī)發(fā)生器種子
array_rand();
array_shuffle();
范例
echo date("Ymd").rand(1000000,9999999)."jpg";
輸出結(jié)果:200805096246795jpg 的隨即數(shù)
課件為phpchina學(xué)習(xí)課件

相關(guān)文章
php代碼優(yōu)化及php相關(guān)問(wèn)題總結(jié)
php代碼優(yōu)化及php相關(guān)問(wèn)題總結(jié)...2006-10-10一步一步學(xué)習(xí)PHP(1) php開(kāi)發(fā)環(huán)境配置
看著PHP已經(jīng)成為最熱門(mén)的Web編程語(yǔ)言,自己的心里也開(kāi)始癢癢了,好吧,那就從今天開(kāi)始學(xué)習(xí)下PHP。2010-02-02繁體中文轉(zhuǎn)換為簡(jiǎn)體中文的PHP函數(shù)
繁體中文轉(zhuǎn)換為簡(jiǎn)體中文的PHP函數(shù)...2006-10-10php學(xué)習(xí)筆記 類(lèi)的聲明與對(duì)象實(shí)例化
在類(lèi)中聲明成員屬性時(shí),前面必須有修飾詞,當(dāng)不確定使用哪個(gè)詞時(shí),使用var或public 一個(gè)文件只保存一個(gè)類(lèi),文件名中包含類(lèi)名,文件2011-06-06