日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
玩轉(zhuǎn)PHP關(guān)聯(lián)數(shù)組的10個技巧

【譯文】關(guān)聯(lián)數(shù)組是描述一組鍵及其關(guān)聯(lián)值時經(jīng)常使用的一種數(shù)據(jù)類型,可以說它是所有編程語言的支柱,當(dāng)然,PHP也不例外,實際上,關(guān)聯(lián)數(shù)組對Web開發(fā)任務(wù)來說是非常重要的,PHP支持多種操作關(guān)聯(lián)數(shù)組的方法,對開發(fā)人員來說,要從中找出最有效,最合適自己所開發(fā)程序的方法來操縱這些數(shù)組。

這篇文章將介紹10個操作PHP關(guān)聯(lián)數(shù)組的技巧,熟練運用能幫助你提高開發(fā)效率。

1、添加數(shù)組元素

PHP是一種弱類型語言,這意味著你不需要顯示聲明一個數(shù)組及其大小,相反,你可以同時聲明并填充數(shù)組。

 
 
 
  1. $capitals = array(  
  2.   'Alabama' => 'Montgomery',  
  3.   'Alaska'  => 'Juneau',  
  4.   'Arizona' => 'Phoenix'  
  5. ); 

額外的數(shù)組元素可以象下面這樣追加:

 
 
 
  1. $capitals['Arkansas'] = 'Little Rock'; 

如果你正在處理數(shù)字索引數(shù)組,你可能想使用顯示命名的函數(shù)前置和追加元素,如array_push()和array_unshift()函數(shù),但這些函數(shù)不能操作關(guān)聯(lián)數(shù)組。

2、刪除數(shù)組元素

如果要從數(shù)組中刪除一個元素,請使用unset()函數(shù),如:

 
 
 
  1. unset($capitals['California']); 

使用數(shù)字索引數(shù)組時,刪除數(shù)組元素的辦法更多,更靈活,可以使用array_shift()和array_pop()函數(shù)分別從數(shù)組的開頭和末尾刪除一個元素。

3、交換鍵和值

假設(shè)你想創(chuàng)建一個名叫$states的新數(shù)組,使用州府作為索引,使用州名作為關(guān)聯(lián)值,使用array_flip()函數(shù)很容易完成這個任務(wù)。

 
 
 
  1. $capitals = array(  
  2.   'Alabama' => 'Montgomery',  
  3.   'Alaska'  => 'Juneau',  
  4.   'Arizona' => 'Phoenix'  
  5. );  
  6. $states = array_flip($capitals);  
  7. // $states = array(  
  8. //  'Montgomery' => string 'Alabama',  
  9. //  'Juneau'     => string 'Alaska',  
  10. //  'Phoenix'    => string 'Arizona'  
  11. // ); 

4、合并數(shù)組

假設(shè)前面的數(shù)組由一個基于Web的“FlashCard”服務(wù)使用,你想提供一種方法測試學(xué)生對美國各州***的掌握情況,你可以使用array_merge()函數(shù)合并包含州和***的數(shù)組。

 
 
 
  1. $stateCapitals = array(  
  2.   'Alabama' => 'Montgomery',  
  3.   'Alaska'  => 'Juneau',  
  4.   'Arizona' => 'Phoenix'  
  5. );  
  6. $countryCapitals = array (  
  7.   'Australia' => 'Canberra',  
  8.   'Austria'   => 'Vienna',  
  9.   'Algeria'   => 'Algiers'  
  10. );  
  11. $capitals = array_merge($stateCapitals, $countryCapitals); 

5、編輯數(shù)組值

假設(shè)在數(shù)組中的數(shù)據(jù)包含大小寫錯誤,在插入到數(shù)據(jù)庫之前,你想糾正這些錯誤,你可以使用array_map()函數(shù)給每個數(shù)組元素應(yīng)用一個回調(diào)。

 
 
 
  1. function capitalize($element)  
  2. {  
  3.   $element = strtolower($element);  
  4.   return ucwords($element);  
  5. }  
  6. $capitals = array(  
  7.   'Alabama' => 'montGoMEry',  
  8.   'Alaska'  => 'Juneau',  
  9.   'Arizona' => 'phoeniX'  
  10. );  
  11. $capitals = array_map("capitalize", $capitals); 

#p#

6、按鍵對數(shù)組排序

FlashCard程序常常使用各種排序,如按字母順序排序,你可以使用ksort()函數(shù)按鍵對關(guān)聯(lián)數(shù)組進行排序。

 
 
 
  1. $capitals = array(  
  2.   'Arizona' => 'Phoenix',  
  3.   'Alaska'  => 'Juneau',  
  4.   'Alabama' => 'Montgomery'  
  5. );  
  6. ksort($capitals); 

因為數(shù)組是通過參數(shù)傳遞給ksort()函數(shù)的,意味著你不再需要將排序結(jié)果分配給另一個變量。

7、隨機數(shù)組排序

在FlashCard程序中還涉及到另一種隨機排序技術(shù),這時你要使用shuffle()函數(shù)實現(xiàn)數(shù)組項目的隨機排序。

 
 
 
  1. $capitals = array(  
  2.   'Arizona' => 'Phoenix',  
  3.   'Alaska'  => 'Juneau',  
  4.   'Alabama' => 'Montgomery'  
  5. );  
  6. shuffle($capitals); 

如果不需要打亂數(shù)組順序,你只是想隨機選擇一個值,那么使用array_rand()函數(shù)即可。

8、確定鍵和值是否存在

你可以使用in_array()函數(shù)確定一個數(shù)組元素是否存在。

 
 
 
  1. $capitals = array(  
  2.   'Arizona' => 'Phoenix',  
  3.   'Alaska'  => 'Juneau',  
  4.   'Alabama' => 'Montgomery'  
  5. );  
  6. if (in_array("Juneau", $capitals))  
  7. {  
  8.   echo "Exists!";  
  9. } else {  
  10.   echo "Does not exist!";  

很少有人知道這個函數(shù)也可以確定一個數(shù)組鍵是否存在,在這一點上,它和array_key_exists()函數(shù)的功能一樣。

 
 
 
  1. $capitals = array(  
  2.   'Arizona' => 'Phoenix',  
  3.   'Alaska'  => 'Juneau',  
  4.   'Alabama' => 'Montgomery'  
  5. );  
  6. if (array_key_exists("Alaska", $capitals))  
  7. {  
  8.   echo "Key exists!";  
  9. } else {  
  10.   echo "Key does not exist!";  

9、搜索數(shù)組

你可能想搜索數(shù)組資源,這樣用戶就可以方便地用一個特定的州府檢索關(guān)聯(lián)的州,可以通過array_search()函數(shù)實現(xiàn)數(shù)組搜索。

 
 
 
  1. $capitals = array(  
  2.   'Arizona' => 'Phoenix',  
  3.   'Alaska'  => 'Juneau',  
  4.   'Alabama' => 'Montgomery'  
  5. );  
  6. $state = array_search('Juneau', $capitals);  
  7. // $state = 'Alaska' 

10、標(biāo)準(zhǔn)PHP庫

標(biāo)準(zhǔn)PHP庫(Standard PHP Library,SPL)為開發(fā)人員提供了許多數(shù)據(jù)結(jié)構(gòu),迭代器,接口,異常和其它以前PHP語言沒有的功能,使用這些功能可以通過面向?qū)ο蟮恼Z法遍歷數(shù)組。

 
 
 
  1. $capitals = array(  
  2.   'Arizona' => 'Phoenix',  
  3.   'Alaska'  => 'Juneau',  
  4.   'Alabama' => 'Montgomery'  
  5. );  
  6. $arrayObject = new ArrayObject($capitals);  
  7. foreach ($arrayObject as $state => $capital)  
  8. {  
  9.   printf("The capital of %s is %s", $state, $capital);  
  10. }  
  11. // The capital of Arizona is Phoenix  
  12. // The capital of Alaska is Juneau  
  13. // The capital of Alabama is Montgomery 

這僅僅是SPL眾多偉大功能中的一個,一定要閱讀PHP文檔了解更多信息。

原文明:10 PHP Tricks for Associative Array Manipulation                黃永兵 譯

原文鏈接:http://www.phpbuilder.com/columns/associative-array-manipulation/Jason_Gilmore12092010.php3

【獨家譯文,轉(zhuǎn)載請表明出處及作者!】


網(wǎng)站標(biāo)題:玩轉(zhuǎn)PHP關(guān)聯(lián)數(shù)組的10個技巧
分享鏈接:http://m.5511xx.com/article/dhpdhdg.html