1. 程式人生 > >PHP關聯陣列的10個技巧

PHP關聯陣列的10個技巧

這篇文章將介紹10個操作PHP關聯陣列的技巧,熟練運用能幫助你提高開發效率。

1、新增陣列元素

PHP是一種弱型別語言,這意味著你不需要顯示宣告一個數組及其大小,相反,你可以同時宣告並填充陣列。

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

額外的陣列元素可以象下面這樣追加:

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

如果你正在處理數字索引陣列,你可能想使用顯示命名的函式前置和追加元素,如array_push()和array_unshift()函式,但這些函式不能操作關聯陣列。

2、刪除陣列元素

如果要從陣列中刪除一個元素,請使用unset()函式,如:

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

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

3、交換鍵和值

假設你想建立一個名叫$states的新陣列,使用州府作為索引,使用州名作為關聯值,使用array_flip()函式很容易完成這個任務。

  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、合併陣列

假設前面的陣列由一個基於Web的“FlashCard”服務使用,你想提供一種方法測試學生對美國各州首府的掌握情況,你可以使用array_merge()函式合併包含州和首府的陣列。

  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、編輯陣列值

假設在陣列中的資料包含大小寫錯誤,在插入到資料庫之前,你想糾正這些錯誤,你可以使用array_map()函式給每個陣列元素應用一個回撥。

  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); 

6、按鍵對陣列排序

FlashCard程式常常使用各種排序,如按字母順序排序,你可以使用ksort()函式按鍵對關聯陣列進行排序。

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

因為陣列是通過引數傳遞給ksort()函式的,意味著你不再需要將排序結果分配給另一個變數。

7、隨機陣列排序

在FlashCard程式中還涉及到另一種隨機排序技術,這時你要使用shuffle()函式實現陣列專案的隨機排序。

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

如果不需要打亂陣列順序,你只是想隨機選擇一個值,那麼使用array_rand()函式即可。

8、確定鍵和值是否存在

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

  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!";  

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

  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、搜尋陣列

你可能想搜尋陣列資源,這樣使用者就可以方便地用一個特定的州府檢索關聯的州,可以通過array_search()函式實現陣列搜尋。

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

10、標準PHP庫

標準PHP庫(Standard PHP Library,SPL)為開發人員提供了許多資料結構,迭代器,介面,異常和其它以前PHP語言沒有的功能,使用這些功能可以通過面向物件的語法遍歷陣列。

  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眾多偉大功能中的一個,一定要閱讀PHP文件瞭解更多資訊。

相關推薦

PHP關聯陣列10操作技巧

PHP 陣列 陣列是特殊的變數,它可以同時儲存一個以上的值,陣列能夠在單一變數名中儲存許多值,並且您能夠通過引用下標號來訪問某個值。 在 PHP 中建立陣列 在 PHP 中, array() 函式用於建立陣列: array(); 在 PHP 中,有三種陣列型別:

PHP關聯陣列10技巧

這篇文章將介紹10個操作PHP關聯陣列的技巧,熟練運用能幫助你提高開發效率。 1、新增陣列元素 PHP是一種弱型別語言,這意味著你不需要顯示宣告一個數組及其大小,相反,你可以同時宣告並填充陣列。 $capitals = array(    'Alabama' =>

小白必看 學習PHP的6步驟10技巧

php 教程 在這個終身學習的時代,資訊泛濫的時代,我們需要的能力並不是去背誦相應的知識點,而是掌握學習方式。學習PHP也是如此,有時候技巧和步驟比埋頭苦幹要有效得多。下面小編就和大家分享一下學習PHP的6個步驟(僅僅是簡單概括)和10個技巧。 1、首先需要熟悉HTML/CSS/JS等網頁基本元素,完

提升 Web開發性能的 10 技巧

例如 internet nginx 數據庫 出了 sta local 延遲 jpg 隨著網絡的高速發展,網絡性能的持續提高成為能否在蕓蕓App中脫穎而出的關鍵。高度聯結的世界意味著用戶對網絡體驗提出了更嚴苛的要求。假如你的網站不能做到快速響應,又或你的App存在延遲,用戶很

編寫優秀jQuery插件的10技巧

max run () hide container line 選項 als 不同的 1. 把你的代碼全部放在閉包裏面 這是我用的最多的一條。但是有時候在閉包外面的方法會不能調用。不過你的插件的代碼只為你自己的插件服務,所以不存在這個問題,你可以把所有的代碼都放在閉包裏面。而

推進你的計算機網絡事業:10技巧

我們 不可 一點 協議 團隊 新技術 基礎設施 創新 需要 希望將自己的職業生涯提升到新水平的網絡專業人士有很多選擇,有時可能會讓人不知所措。關鍵是找出你想去的地方,然後評估你如何到達那裏的選擇。對於一些人來說,職業發展可能就像在一項流行的新技術上學習一周的課程一樣簡單。對

Linux 系統中 sudo 命令的 10 技巧

etc visudo linux. 安全 pwd 自己的 技術 ups linu 概覽 sudo 表示 “superuser do”。 它允許已驗證的用戶以其他用戶的身份來運行命令。其他用戶可以是普通用戶或者超級用戶。然而,大部分時候我們用它來以提升的權限來運行命令。 su

php 獲取陣列第一元素 最後一個元素 最後一個元素的鍵名

1. current() 函式返回陣列中的當前元素的值。 每個陣列中都有一個內部的指標指向它的"當前"元素,初始指向插入到陣列中的第一個元素。   end() - 將內部指標指向陣列中的最後一個元素,並輸出 next() - 將內部指標指向陣列中的下一個元素,並輸出 pre

PHP關聯陣列在進行JSON化時會出現資料型別變成物件的情況

<?php   $arr =array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);   echo json_encode($arr); &

PHP關聯陣列按某一value值排序

1.定義 二維陣列根據某個欄位排序有兩種辦法,一種是通過sort自己寫程式碼,一種是直接用array_multisort排序函式,這裡直接說使用array_multisortd的方式。 2.eg: // a. 構造測試資料 $roledata = array( array("name"=&g

php 關聯陣列遍歷

    <?php $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43"); foreach($age as $x=>$x_value) { echo "Key=" . $x . ", Value=" .

用 Git 和 Github 提高效率的 10 技巧

作者:張伯函 來源:segmentfault.com/a/1190000003830252 Git 和 GitHub 都是非常強大的工具。即使你已經使用他們很長時間,你也很有可能不知道每個細節。 我整理了 Git 和 GitHub 可能提高日常效率的10個常用技巧。

如何打造成為優秀網站的10技巧

相信大部分朋友都有自己的網站或許在為其他網站進行網路營銷作業,但是不少人都有這樣的困惑,我畢竟該怎樣擬定我的網路營銷戰略?許多人直接挑選了SEO,由於它能夠帶來免費的流量。 假如您希望您的網站看起來更專業,程式人生網給你介紹這十個技巧或許或許可以給您幫助: 1. 導航是要害   確保您的

php 獲取陣列第一元素 以及最後一個元素 && 最後一個元素的鍵名

 簡單寫法 $data = explode($splite, $content); var_dump($data[0]); 最後一個 var_dump($data[count($data)-1]);    瞭解指標以後就是 1.獲取陣列第一個

正確使用日誌的10技巧

做一個苦逼的Java攻城師, 我們除了關心繫統的架構這種high level的問題, 還需要了解一些語言的陷阱, 異常的處理, 以及日誌的輸出, 這些"雞毛蒜皮"的細節. 這篇文章是JCP成員, Tomasz Nurkiewicz(http://nurkiewicz.blo

Linux 中高效編寫 Shell 指令碼的 10 技巧

Shell 指令碼程式設計 是你在 Linux 下學習或練習程式設計的最簡單的方式。尤其對 系統管理員要處理著自動化任務,且要開發新的簡單的實用程式或工具等(這裡只是僅舉幾例)更是必備技能。 本文中,我們將分享 10 個寫出高效可靠的 bash 指令碼的實用技巧,它們包括: 1、 指令碼中多寫註釋

Linux中編寫Bash指令碼的10技巧

Shell 指令碼程式設計 是你在 Linux 下學習或練習程式設計的最簡單的方式。尤其對 系統管理員要處理著自動化任務,且要開發新的簡單的實用程式或工具等(這裡只是僅舉幾例)更是必備技能。 本文中,我們將分享 10 個寫出高效可靠的 bash 指令碼的實用技巧,它們包括: 1、 指令碼中多寫註釋 這是

Linux中編寫Bash腳本的10技巧

oot .cn 註意 src 使用 art 模塊化 工作 set Shell 腳本編程 是你在 Linux 下學習或練習編程的最簡單的方式。尤其對 系統管理員要處理著自動化任務,且要開發新的簡單的實用程序或工具等(這裏只是僅舉幾例)更是必備技能。 本文中,我們將分享 10

防止網路攻擊的10技巧

網路攻擊每天都在增加,其頻率和複雜程度也在增加; 更糟糕的是,它們經常繞過組織現有的保護控制。因此,除了其他安全層(如防病毒程式和防火牆)之外,組織還必須部署主動的威脅搜尋活動,以便儘早檢測並修復威脅,以減輕損害。開始攻擊威脅計劃的公司在成功時會有所成功,但他們是否能夠實現這一目標? 不幸的是,

PHP中的10實用函式

1.php_check_syntax 這個函式可以用來檢查特定檔案中的PHP語法是否正確。 使用方法: <?php $error_message =""; $filename ="./php_script.php";if(!php_check_syntax($fi