首頁 後端開發 php教程 php array的學習筆記

php array的學習筆記

Dec 17, 2016 am 09:20 AM

. 代碼如下:


header('Content-Type: text/html; charset=utf-8'); 
echo '

'; <br>function var_array($array) <br>{ <br>echo '<pre class="brush:php;toolbar:false">'; array); <br>echo '
登入後複製
'; 

function printr($array) 

echo '
'; <br>print_r($array); 🠎 function getArr($sNum, $eNum=1, $step=1) <br>{ <br>$arr = range($sNum, $eNum, $step); <br>$reArr = array(); ) <br>{ <br>$reArr[$v] = rand(0,10); <br>} <br>unset($arr); <br>return $reArr; <br>} <br>/** <br>* array陣列練習 <br>#//1/---- ----------------------------------------- <br>//array_change_key_case() 改變陣列索引的大小寫字母,由最後一個參數決定:CASE_UPPER(轉換為大寫),CASE_LOWER(預設轉換為小寫) <br>$expArr = array( <br>'fiRsT' => '1', <br>'sEcoNd' => '2' , <br>'ThIrd' => array( <br>'HuiMa' => '3', <br>'nengZhuaNma' => '5', <br>) <br>); <br>printr(array_change_r(array_change_case)( <br>printr(array_change_key_case($expArr['ThIrd'], CASE_UPPER));//全部轉換成大寫只對$expArr數組裡的某個index鍵轉換 <br>//總結:此函數只會影響數組的一層。 且不會對原數組產生影響 <br>echo '<br><hr><br>'; <br>//---------------------- ----------------------- <br>//array_chunk($array, $size, false) <br>//將一個陣列分割成一個多維數組,size決定這個陣列每$size個成為一個多維數組, true/false決定新數組的鍵值是否沿用原始數組的鍵 <br>$expArr = array('4','2','6','d','2 '); <br>printr(array_chunk($expArr, 3)); <br>//總結:此函數只會影響陣列的一層。 且不會對原數組產生影響 <br>echo '<br><hr><br>'; <br>//---------------------- ----------------------- <br>//array_combine($keyArr, $valArr) <br>//將兩個陣列組合成一個數組,$keyArr做為鍵,$valArr做為值 <br>$expKey = array('g', 'd', 't'); <br>$expVal = array('5', '8', '7'); <br>printr(array_combine( $expKey, $expVal)); <br>//此函數同樣只會影響陣列的一層,並且傳回新陣列 <br>echo '<br><hr><br>'; <br>//---- ----------------------------------------- <br>//array_count_values($array) <br> //統計$array數組中每個value出現的次數,並以他個value做為新數組的鍵,出現次數做為value <br>$array = array('v1'=>'265', 'v2'= >'352', 'v3'=>'265', 'v4'=>'349', 'v5'=>'265'); <br>printr(array_count_values($array)); <br>//總結:此函數只能用於統計值為string和integer類型的value,其他型別會發warning! <br>echo '<br><hr><br>'; <br>//------------------------------ --------------- <br>//array_diff($array1, $array2...) <br>//以$array1為基礎數組,他的值不出現在其他任何參數數組裡的值組成一個新數組 <br>$arr1 = array('v4'=>458, 'gren', 'b5', 'a5'); <br>$arr2 = array('v4'=>598, 'red', ' a5', 'c4'); <br>printr(array_diff($arr1, $arr2)); <br>//總結:拿一個數組到一堆數組中找出這個數組中沒有的值,統計、數據對比應該會用到 <br>//array_intersect($array, $parArr, ....) <br>//該函數同array_diff功能上一樣,只是array_intersect()回傳的是共有的數據,array_diff則是只存在於$array中的資料 <br>// <br>echo '<br><hr><br>'; <br>//-------------------------- ------------------- <br>//array_diff_assoc($array1, $array2...) <br>//同array_diff()函數,但這個也會拿key做對比<br>// <br>echo '<br><hr><br>'; <br>//--------------------------- ------------------ <br>//array_diff_key <br>//同array_diff()函數 <br>//只是這個只拿$array1的key去與其他參數數組進行查找 <br>/ / <br>echo '<br><hr><br>'; <br>//------------------------------- -------------- <br>//array_diff_uassoc($arr1, $parArr...., 回呼函數) <br>//功能同array_diff(),但需要使用者定義一個回呼函數 <br>/ /未明白此函數的功能 <br>// <br>echo '<br><hr><br>'; <br>//-------------------- ------------------------- <br>//array_diff_ukey($arr1, $parArr...., 回呼函數) <br>//功能同array_diff_key( ),只不過和array_diff_uassoc一樣,需要一個回呼函數 <br>// <br>// <br>echo '<br><hr><br>'; <br>//------------ --------------------------------- <br>//array_fill($startInt, $numInt, $value) <br>//把$value填入一個新數組,新數組的索引起始位置開始由$startInt決定,$numInt則控制這個數組產生多少個索引。 <br>//tip:除了$value,$startInt,$numInt必須為數字,否則報錯 <br>printr(array_fill(2, 5, 'value')); <br>//總結:還沒想到幹啥用 <br>echo '<hr><br>'; <br>//---------------------------------- ----------- <br>//array_fill_keys($arrKeys, $value); <br>//功能同array_fill()函數。只不過這裡用$arrKeys【一個陣列的值】來做為新數組的鍵 <br>$arrKeys = array('45', 'd', 'b', 'c'); <br>printr(array_fill_keys($arrKeys, 'value')); <br>echo '<br><hr><br>'; <br>//------------------------ --------------------- <br>//array_filter($arr, callBack回呼函數) <br>//過濾函數,透過對$arr數組的值的判斷,如果callBack回呼函數傳回true,則將目前鍵以及值加到新的陣列裡 <br>//TIP:回呼函數可以寫個規則,來過濾掉裡面不符合規則的陣列鍵 <br>function cb($val) <br>{ <br> return $val%2 == 0; <br>} <br>$array = array('k1'=>3, 'k2'=>5,'k4'=>54654, 'k5'=>8794, 8945, 32549564); <br>printr($array, 'cb'); <br>//tip:回呼函數名稱建議用引號引起來 <br>//總結:該方法可以做成一個資料過濾的整合 <br>unset($array); <br>echo '<hr><br>'; <br>//---------------------------------- ----------- <br>//array_flip($array) <br>//將陣列中key和value的關係轉換。只支援string和integr類型的鍵,其他類型將會發出警告,並且有問題的鍵值不會轉換。在產生的新的數組,如果鍵相同,他會不停的替換掉現有鍵的值 <br>$arr = array('k1'=>'v1', 'k2'=>'v2', 'k3' =>'v4', 'k4'=>'v4', 'k5'=>'v5'); <br>printr(array_flip($arr)); <br>unset($arr); <br>echo '<br><br>'; <br>//-------------------------------------- ------- <br>//array_key_exists($key, $array) <br>//判斷一個鍵是否存在於目前陣列中,回傳bool。亦可用於判斷物件 <br>$array = array('cb' => 234, 'dv'=>45, 'one'=>897); <br>if(array_key_exists('one', $array)) <br>echo '存在這個陣列中'; <br>else <br>echo '不存在'; <br>echo '<br><hr><br>'; <br>//---------------- ----------------------------- <br>//array_keys($array, $selSearch_value) <br>//傳回陣列中的鍵名並組成一個新數組,如果指定了$selSearch_value值,那麼將回傳數組裡等於$selSearch_value的鍵名 <br>$array = getArr(4, 10); <br>printr(array_keys($array)); array, '5'));//帶值的搜尋 <br>unset($array); <br>//總結:此也可用於資料統計,資料比較驗證 <br>echo '<br><hr><br>'; <br>//-------------------------------------------- - <br>echo 'array_map:'; <br>//array_map('callBack', $array,...) <br>//把傳入的函數,傳回經callback回呼函數的回傳值 <br>//回呼函數也可以回傳一個數組。而且,回呼函數只接受一個陣列裡的值傳入 <br>function mapCb($n) <br>{ <br>return $n*$n*$n; <br>} <br>$array = getArr(4, 155); ('mapCb', $array)); <br>echo '<br><hr><br>'; <br>//--------------------------------------------- <br>// array_merge($array,$array2...) <br>//將多個數組組成一個數組,並重新編寫數字索引。 <br>$arr1 = getArr(1, 5); <br>$arr2 = getArr(5, 10); <br>printr(array_merge($arr1, $arr2)); <br>//總結:將多個陣列組成一個新陣列。 <br>echo '<br><hr><br>'; <br>//------------------------------ --------------- <br>//array_merge_recursive($arr1, $arr2....) <br>//功能同上。但函數會將鍵名相同的值組成一個新數組,而不是替換掉 <br>//但如果要用,根據實際情況使用 <br>echo '<br><hr><br>'; <br>// --------------------------------------------- <br>//array_multisort( ) <br>//多維數組排序,目前只實現了二維數組排序。三維估計值不能排 <br>//此函數會直接改變員數組順序 <br>echo '<br><hr><br>'; <br>//--------------- ------------------------------ <br>//array_pad($arr, $size, $value) <br>//對陣列進行填充,如果目前$arr的長度小於$size,那麼,就用$value來填充$arr數組,直至$arr的長度與$size相等 <br>//如果$arr的長度大於或等於$size,那麼該函數將不會對$arr進行填滿。 $size小於0則填入$arr的左邊,大於0則右邊 <br>echo '<br><hr><br>'; <br>//-------------- ------------------------------- <br>//array_pop($array) <br>//去掉陣列的最後一個鍵。 <br>echo '<br><hr><br>'; <br>//------------------------------ --------------- <br>//array_product($arr) <br>//傳回一個陣列中所有數值的乘積。 <br>//tip:此函數無法處理非數值類型的資料。如果傳入陣列裡包含'a、b之類字串',那麼php會報錯 <br>$arr = array(4,5,5); <br>echo array_product($arr); <br>echo '<br><hr><br>'; <br>//--------------------------------------- ------ <br>//array_push($arr, $keyArr) <br>//將$keyArr加入$arr數組的結尾,以key/堆疊的形式加入。 <br>//與array_merge()、array_merge_recursive()兩個函數的差異: <br>// arrap_push()是將一個$keyArr加到$arr裡邊,而其他兩個函數則是將多個函數連接成一個函數<br>echo '<br><hr><br>'; <br>//-------------------------------- ------------- <br>//array_rand($arr, $num=1) <br>//取出目前陣列裡的鍵,取出幾個由$num決定,預設為1 <br>//如果$num為1,那麼它將回傳一個string <br>//如果$num>1 && $num<count></count>//否則php報錯 <br>$arr = getArr(5, 15); <br>printr(array_rand($arr, 4)); <br>echo '<br><hr><br>'; <br>//------------------ --------------------------- <br>//array_reduce() <br>//和array_map()類似,透過回呼函數,對陣列裡的數值進行處理,並接受回傳值 <br>//該函數傳回一個字串。他會將陣列裡所有的值進行計算,並傳回計算後的值,而array_map則是對每個鍵下的值進行計算,並傳回array <br>//不是太明白,實例看手冊 <br>echo '<br><hr><br>'; <br>//----------------------------------- ---------- <br>//array_replace($array, $parArr,...) <br>//用參數數組裡鍵的值替換$array里相同鍵的值 <br>//如果$array陣列裡在後邊的參數數組裡沒有找到對應的鍵,那麼加到新數組後邊 <br>/*$arr = getArr(4, 10); <br>$arr2 = getArr(6, 15); <br>printr($arr) ; <br>printr($arr2);*/ <br>$base = array('citrus' => array( "orange") , 'berries' => array("blackberry", "raspberry"), ); <br>$replacements = array('citrus' => array('pineapple'), 'berries' => array('blueberry')); <br>printr(array_replace($base, $replacements)); <br>echo '<br><hr><br>'; <br>//---------------------------------------- ----- <br>//array_replace_recursive() 遞迴替換 <br>//功能同array_replace()相同。差異在於:array_replace_recursive()可以對多維數組操作,並且不改變$array的結構,而array_replace()他最終會回傳一個一維數組 <br>$base = array('citrus' => array( "orange") , 'berries' => array("blackberry", "raspberry"), ); <br>$replacements = array('citrus' => array('pineapple '), 'berries' => array('blueberry')); <br>printr(array_replace_recursive($base, $replacements)); <br>echo '<br><hr><br>'; <br>//----- ---------------------------------------------- <br>//array_reverse($ arr) <br>//將陣列裡的鍵依相反順序排列 <br>echo '<br><hr><br>'; <br>//---------------- ----------------------------- <br>//array_search($value, $array) <br>//在$array陣列中去找值為$value的鍵名 <br>//沒有找到則回傳false <br>//如果$array數組鴻有多個$value,那麼只傳回第一個符合的鍵 <br>//該函數與array_keys()類似,區別在於回傳值上:array_search()只會回傳一個符合的鍵名,而array_keys()則可以傳回一個由所有符合的鍵組成的一維數組 <br>echo '<br><hr><br> '; <br>//--------------------------------------------- <br>//array_shift($arr) <br>//去掉目前$arr數組裡的第一個鍵,並且將後邊的數字索引重新編排(但不改變原有順序),非數字索引不變。 <br>//函數與array_pop()類似,差別在於array_pop()去掉是最後一個,array_shift()去掉腦袋 <br>echo '<br><hr><br>'; <br>//---- ----------------------------------------- <br>//array_slice($arr, $ offset, $length=0, false) 數組截取 <br>//返回目前$arr數組裡從$offset處開始偏移,共$length個元素/鍵,並組成一個新數組返回 <br>//如果$offset或$ length為負數,那麼就是向相反方向進行偏移 <br>//感覺和substring()字符串截取類似 <br>//直接用php手冊上的實例了 <br>$input = array("a", "b", " c", "d", "e"); <br>$output = array_slice($input, 2); // returns "c", "d", and "e" <br>$output = array_slice($input, -2 , 1); // returns "d" <br>$output = array_slice($input, 0, 3); // returns "a", "b", and "c" <br>// note the differences in the array keys <br> printr(array_slice($input, 2, -1)); <br>printr(array_slice($input, 2, -1, true)); <br>echo '<br><hr><br>'; <br>/ /--------------------------------------------------------- <br>//array_spslice ($arr, $offset, $length) <br>//同array_slice()函數正好相反,函數是去掉位於$offset和$length之間這些元素 <br>unset($arr); <br>echo '<br><br>'; <br>//-------------------------------------- ------- <br>//array_sum($arr) <br>//將$arr數組裡的所有值進行求和累加,如果是非數值類型的則嘗試進行轉換,但是大部分轉換後為0 <br>/ /此函數只會影響一層數組,且array_product()類似 <br>$arr = array( <br>45,56, 'a', 'b'=>getArr(1, 2), <br>); <br>printr($$ arr); <br>echo 'array_sum($arr)',array_sum($arr); <br>echo '<br><hr><br>'; <br>//----------- ---------------------------------- <br>//array_values($arr) <br>//將$arr數組裡的值被提取出來,組成新的陣列 <br>$arr = array( <br>'k1'=>45,'k2'=>56, 'k3'=>'a', 'b'=>getArr(1, 2) , <br>); <br>printr(array_values($arr)); <br>echo '<br><hr><br>'; <br>//---------------- ----------------------------- <br>//array_unique($arr) 對陣列進行排重 <br>//對$arr數組進行排重,將重複的值進行過濾。多個相同的值將只保留第一個 <br>echo '<br><hr><br>'; <br>//------------------- -------------------------- <br>//array_walk($arr, callback[回呼函數], $sel_perfix='') <br>//對目前數組下的每個鍵進送到callback函數裡進行處理 <br>//如果加上$sel_perfix參數,回呼函數也要三個參數來接收,否則報錯 <br>//該函數只影響一層 <br>$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple"); <br>function test_alter(&$item1, $key, $prefix) <br>{ <br>$item1 = "$prefix: $item1"; <br>} <br>printr(array_walk($fruits, 'test_print')); test_alter', 'fruit'); <br>echo '<br><hr><br>'; <br>//---------------------- ----------------------- <br>//array_walk_recursive() <br>//功能類似array_alk();但他會遞歸$arr的每一層數組,傳回的陣列不會改變原有陣列的結構 <br>echo '<br><hr><br>'; <br>//----------------- ---------------------------- <br>//arsort($arr) <br>//依照陣列鍵名排序數組,可以對字母進行排序。如果排序失敗,將回傳null <br>echo '<br><hr><br>'; <br>//----------------------- ---------------------- <br>//asort() <br>//功能類似arsort(),差異在於:asort()是對數值進行排序 <br>  以上就是php array的學習筆記的內容,更多相關文章請關注PHP中文網(www.php.cn)! <p><br></p><p><br></p>
登入後複製
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 Dec 24, 2024 pm 04:42 PM

PHP 8.4 帶來了多項新功能、安全性改進和效能改進,同時棄用和刪除了大量功能。 本指南介紹如何在 Ubuntu、Debian 或其衍生版本上安裝 PHP 8.4 或升級到 PHP 8.4

我後悔之前不知道的 7 個 PHP 函數 我後悔之前不知道的 7 個 PHP 函數 Nov 13, 2024 am 09:42 AM

如果您是經驗豐富的PHP 開發人員,您可能會感覺您已經在那裡並且已經完成了。操作

如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 Dec 20, 2024 am 11:31 AM

Visual Studio Code,也稱為 VS Code,是一個免費的原始碼編輯器 - 或整合開發環境 (IDE) - 可用於所有主要作業系統。 VS Code 擁有大量針對多種程式語言的擴展,可以輕鬆編寫

在PHP API中說明JSON Web令牌(JWT)及其用例。 在PHP API中說明JSON Web令牌(JWT)及其用例。 Apr 05, 2025 am 12:04 AM

JWT是一種基於JSON的開放標準,用於在各方之間安全地傳輸信息,主要用於身份驗證和信息交換。 1.JWT由Header、Payload和Signature三部分組成。 2.JWT的工作原理包括生成JWT、驗證JWT和解析Payload三個步驟。 3.在PHP中使用JWT進行身份驗證時,可以生成和驗證JWT,並在高級用法中包含用戶角色和權限信息。 4.常見錯誤包括簽名驗證失敗、令牌過期和Payload過大,調試技巧包括使用調試工具和日誌記錄。 5.性能優化和最佳實踐包括使用合適的簽名算法、合理設置有效期、

php程序在字符串中計數元音 php程序在字符串中計數元音 Feb 07, 2025 pm 12:12 PM

字符串是由字符組成的序列,包括字母、數字和符號。本教程將學習如何使用不同的方法在PHP中計算給定字符串中元音的數量。英語中的元音是a、e、i、o、u,它們可以是大寫或小寫。 什麼是元音? 元音是代表特定語音的字母字符。英語中共有五個元音,包括大寫和小寫: a, e, i, o, u 示例 1 輸入:字符串 = "Tutorialspoint" 輸出:6 解釋 字符串 "Tutorialspoint" 中的元音是 u、o、i、a、o、i。總共有 6 個元

解釋PHP中的晚期靜態綁定(靜態::)。 解釋PHP中的晚期靜態綁定(靜態::)。 Apr 03, 2025 am 12:04 AM

靜態綁定(static::)在PHP中實現晚期靜態綁定(LSB),允許在靜態上下文中引用調用類而非定義類。 1)解析過程在運行時進行,2)在繼承關係中向上查找調用類,3)可能帶來性能開銷。

您如何在PHP中解析和處理HTML/XML? 您如何在PHP中解析和處理HTML/XML? Feb 07, 2025 am 11:57 AM

本教程演示瞭如何使用PHP有效地處理XML文檔。 XML(可擴展的標記語言)是一種用於人類可讀性和機器解析的多功能文本標記語言。它通常用於數據存儲

什麼是PHP魔術方法(__ -construct,__destruct,__call,__get,__ set等)並提供用例? 什麼是PHP魔術方法(__ -construct,__destruct,__call,__get,__ set等)並提供用例? Apr 03, 2025 am 12:03 AM

PHP的魔法方法有哪些? PHP的魔法方法包括:1.\_\_construct,用於初始化對象;2.\_\_destruct,用於清理資源;3.\_\_call,處理不存在的方法調用;4.\_\_get,實現動態屬性訪問;5.\_\_set,實現動態屬性設置。這些方法在特定情況下自動調用,提升代碼的靈活性和效率。

See all articles