自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

玩轉(zhuǎn)PHP關(guān)聯(lián)數(shù)組的10個(gè)技巧

原創(chuàng)
開發(fā) 后端 前端
關(guān)聯(lián)數(shù)組是描述一組鍵及其關(guān)聯(lián)值時(shí)經(jīng)常使用的一種數(shù)據(jù)類型,可以說(shuō)它是所有編程語(yǔ)言的支柱,文章將介紹10個(gè)操作PHP關(guān)聯(lián)數(shù)組的技巧,熟練運(yùn)用能幫助你提高開發(fā)效率。

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

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

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

PHP是一種弱類型語(yǔ)言,這意味著你不需要顯示聲明一個(gè)數(shù)組及其大小,相反,你可以同時(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ù)組中刪除一個(gè)元素,請(qǐng)使用unset()函數(shù),如:

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

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

3、交換鍵和值

假設(shè)你想創(chuàng)建一個(gè)名叫$states的新數(shù)組,使用州府作為索引,使用州名作為關(guān)聯(lián)值,使用array_flip()函數(shù)很容易完成這個(gè)任務(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ù)組由一個(gè)基于Web的“FlashCard”服務(wù)使用,你想提供一種方法測(cè)試學(xué)生對(duì)美國(guó)各州***的掌握情況,你可以使用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ù)包含大小寫錯(cuò)誤,在插入到數(shù)據(jù)庫(kù)之前,你想糾正這些錯(cuò)誤,你可以使用array_map()函數(shù)給每個(gè)數(shù)組元素應(yīng)用一個(gè)回調(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、按鍵對(duì)數(shù)組排序

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

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

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

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

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

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

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

8、確定鍵和值是否存在

你可以使用in_array()函數(shù)確定一個(gè)數(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!";  

很少有人知道這個(gè)函數(shù)也可以確定一個(gè)數(shù)組鍵是否存在,在這一點(diǎn)上,它和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ù)組資源,這樣用戶就可以方便地用一個(gè)特定的州府檢索關(guān)聯(lián)的州,可以通過(guò)array_search()函數(shù)實(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庫(kù)

標(biāo)準(zhǔn)PHP庫(kù)(Standard PHP Library,SPL)為開發(fā)人員提供了許多數(shù)據(jù)結(jié)構(gòu),迭代器,接口,異常和其它以前PHP語(yǔ)言沒(méi)有的功能,使用這些功能可以通過(guò)面向?qū)ο蟮恼Z(yǔ)法遍歷數(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<br />", $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眾多偉大功能中的一個(gè),一定要閱讀PHP文檔了解更多信息。

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

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

【51CTO獨(dú)家譯文,轉(zhuǎn)載請(qǐng)表明出處及作者!】

【編輯推薦】

  1. PHP生成隨機(jī)字符串的三種方法
  2. 改善PHP開發(fā)方式的5種方法
  3. 解讀PHP異常機(jī)制的流程及原理
  4. 深入理解PHP中的匿名函數(shù) 
責(zé)任編輯:王曉東 來(lái)源: 51CTO.com
相關(guān)推薦

2009-11-24 19:25:32

PHP關(guān)聯(lián)數(shù)組

2009-11-24 19:40:07

PHP關(guān)聯(lián)數(shù)組查詢結(jié)果

2009-11-17 17:07:01

PHP關(guān)聯(lián)數(shù)組

2010-07-16 10:20:46

Perl關(guān)聯(lián)數(shù)組

2010-07-16 10:30:10

Perl關(guān)聯(lián)數(shù)組

2010-07-19 15:31:10

Perl關(guān)聯(lián)數(shù)組函數(shù)

2010-07-19 09:28:37

Perl關(guān)聯(lián)數(shù)組

2010-07-16 10:38:24

Perl關(guān)聯(lián)數(shù)組

2009-12-04 14:41:11

PHP數(shù)組變成JSON

2010-07-13 09:58:51

Perl關(guān)聯(lián)數(shù)組

2016-11-20 20:08:38

Web設(shè)計(jì)站點(diǎn)性能遠(yuǎn)程辦公

2012-11-23 13:14:52

2023-07-02 14:21:06

PythonMatplotlib數(shù)據(jù)可視化庫(kù)

2015-09-25 13:37:02

技巧開始菜單

2009-11-17 15:57:26

PHP數(shù)組合并

2009-12-09 09:38:15

PHP序列化數(shù)組

2020-06-08 07:52:31

Python開發(fā)工具

2009-06-23 16:53:53

語(yǔ)義網(wǎng)Web3.0關(guān)聯(lián)數(shù)據(jù)

2022-08-16 15:05:55

Neo4j圖數(shù)據(jù)庫(kù)大數(shù)據(jù)

2009-11-18 14:32:29

PHP數(shù)組循環(huán)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)