PH在P中,數(shù)組的每個(gè)元素都是由鍵/值組成的,通過(guò)元素的鍵來(lái)訪問(wèn)對(duì)應(yīng)的鍵的值。“關(guān)聯(lián)數(shù)組”指的是鍵名為字符串的數(shù)組,“索引”和“鍵名”指的是同一樣?xùn)|西。“索引”多指數(shù)組的數(shù)字形式的下標(biāo)。使用數(shù)組的處理函數(shù),可以很方便地對(duì)數(shù)組中的每個(gè)元素的鍵和值進(jìn)行操作,進(jìn)而生成一個(gè)新數(shù)組。
①函數(shù)array_values()
array_values()函數(shù)的作用是返回?cái)?shù)組中所有元素的值。使用非常容易,只有一個(gè)必選參數(shù),規(guī)定傳入給定的數(shù)組,返回一個(gè)包含給定數(shù)組中所有值得數(shù)組。但不保留鍵名,被返回的數(shù)組將使用順序的數(shù)值鍵重新建立索引,從0開(kāi)始并且以1遞增。適合用于數(shù)組中元素下表混亂的數(shù)組,或者可以將關(guān)聯(lián)數(shù)組轉(zhuǎn)化為索引數(shù)組。代碼如下所示:
| 1234567891011121314 | <?php$contact = array("ID" => 1,"姓名" => "高某","公司" => "A公司","地址" => "北京市","電話" => "(010)98765432");//array_values()函數(shù)傳入數(shù)組$contact 重新索引返回一個(gè)新數(shù)組PRint_r(array_values($contact));print_r($contact); //原數(shù)組$contact內(nèi)容元素不變?> |
該程序運(yùn)行后的結(jié)果如下所示:Array([0]=>1 [1]=>高某 [2]=>A公司 [3]=>北京市 [4]=>(010)98765432)Array([ID]=>1 [姓名]=>高某 [公司]=>A公司 [地址]=> 北京市 [電話]=>(010)98765432)
②函數(shù)array_keys()
array_keys()函數(shù)的作用是返回?cái)?shù)組中所有的鍵名。本函數(shù)中有一個(gè)必須參數(shù)和兩個(gè)可選參數(shù),其函數(shù)的原型如下:
array array_keys(array input[,mixed search_value[,bool strict]])如果指定了可選參數(shù)search_value,則只返回指定該值得鍵名,否則input數(shù)組中的所有鍵名都會(huì)被返回。自PHP5起,可以用strict參數(shù)來(lái)進(jìn)行全等比較。需要傳入一個(gè)布爾型的值,F(xiàn)ALSE為默認(rèn)值不依賴類型。如果傳入TRUE值則根據(jù)類型返回帶有指定值得鍵名。函數(shù)array_keys()使用的代碼如下所示:
| 123456789101112 | <?php$lamp = array("a"=>"linux","b"=>"Apache","c"=>"MySQL","d"=>"php");print_r(array_keys($lamp)); //輸出Array([0]=>a [1]=>b [2]=>c)print_r(array_keys($lamp,"Apache")); //使用第二個(gè)可選參數(shù)輸出:Array([0]=>b)$a = array(10,20,30,"10"); //聲明一個(gè)數(shù)組,其中元素的值有整數(shù)10和字符串"10"print_r(array_keys($a,"10",false)); //使用第三個(gè)參數(shù)(false)輸出:Array([0]=>0 [1]=>3)$a = array(10,20,30,"10"); //聲明一個(gè)數(shù)組,其中元素的值有整數(shù)10和字符串"10"print_r(array_keys($a,"10",true)); //使用第三個(gè)參數(shù)(true)輸出:Array([0]=>3)?> |
③函數(shù)in_array()
in_array()函數(shù)的作用是檢查數(shù)組中是否存在某個(gè)值,即在數(shù)組中搜索給定的值。本函數(shù)中有三個(gè)參數(shù),前兩個(gè)參數(shù)為必須的,最后一個(gè)參數(shù)為可選的。其函數(shù)的原型如下:
bool in_array(mixed needle,array haystack[,bool strict])
第一個(gè)參數(shù)needle為規(guī)定要在數(shù)組中搜索的值,第二個(gè)參數(shù)haystack是規(guī)定要被搜索的數(shù)組,如果給定的值needle存在于數(shù)組haystack中則返回TRUE。如果第三個(gè)參數(shù)設(shè)置為T(mén)RUE,函數(shù)只有在元素存在于數(shù)組中且數(shù)據(jù)類型于給定值相同時(shí)才返回TRUE。如果沒(méi)有在數(shù)組中找到參數(shù),函數(shù)返回FALSE。要注意如果needle參數(shù)是字符串,且strict參數(shù)設(shè)置為T(mén)RUE,則搜索區(qū)分大小寫(xiě)。函數(shù)array_keys()使用的代碼如下所示: