php常用數(shù)據(jù)處理函數(shù) php語法和常用的函數(shù)

用自己的語言說出php中數(shù)組的常用函數(shù)和用法?

array_filter : 過濾數(shù)組中的無效元素,可以使用回調(diào)函數(shù)過濾

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:域名注冊虛擬主機(jī)、營銷軟件、網(wǎng)站建設(shè)、紫陽網(wǎng)站維護(hù)、網(wǎng)站推廣。

array_map : 使用回調(diào)函數(shù)依次處理所有元素

implode: 將一維數(shù)組轉(zhuǎn)為特定符號隔開的字符串,

explode:? 將特定符號隔開的字符串轉(zhuǎn)為一維數(shù)組

sort /ksort: 將數(shù)組進(jìn)行升序排序

array_unique: 將數(shù)組元素去重

array_values:? 取數(shù)組的值,重新組成新數(shù)組

array_pop: 取數(shù)組末尾元素并刪除(隊列)

array_push:將一個元素插入數(shù)組末尾(隊列)

array_sum:統(tǒng)計數(shù)組元素的和

array_column:將二維數(shù)組中的指定KEY取出組成一個一維數(shù)組

網(wǎng)頁鏈接

PHP 關(guān)聯(lián)數(shù)組操作太麻煩,試試 WPJAM Basic 內(nèi)置的數(shù)組處理函數(shù)

PHP 有很多非常好用的數(shù)組處理函數(shù),PHP 數(shù)組函數(shù)官方文檔都有 80 多個,但是在使用過程,有一些數(shù)組的操作使用比較多,我就把這些函數(shù)整理成工具函數(shù),然后整合到 WPJAM Basic 中,方便自己的二次開放時候使用,現(xiàn)在整理放出來,如果你和我一樣基于 WPJAM Basic 進(jìn)行二次開發(fā),也可以使用:

PHP 從關(guān)聯(lián)數(shù)組中移除指定的鍵值對,一般使用 unset 函數(shù),比如:

如果要移除多個鍵值對,就要調(diào)用多次的 unset 函數(shù),所以就合并成一個函數(shù) :

這樣就可以通過下面方式移除鍵值對了:

如果僅僅移除一個鍵值對,還可以直接傳遞字符串:

我們使用 array_filter 對數(shù)組進(jìn)行過濾的時候,是不會遞歸調(diào)用的,意思如果其中元素也是數(shù)組的時候,是不會進(jìn)行同樣的過濾的操作。

輸出結(jié)果為:

但是我們在一些數(shù)據(jù)處理的時候,比如后臺字段提交的時候,我們希望過濾掉 null 的值,如果元素也是一個關(guān)聯(lián)數(shù)組的時候,我們希望關(guān)聯(lián)數(shù)組元素中的 null 的值也會過濾掉。所以我們就寫了 wpjam_array_filter 這個函數(shù),實現(xiàn) array_filter 遞歸調(diào)用:

同樣的數(shù)組:

輸出結(jié)果為:

PHP 的 array_filter() 函數(shù)讓我們可以通過回調(diào)函數(shù)來過濾數(shù)組,但是返回的是過濾后的數(shù)組,但是很多時候,我們只是簡單的要求 返回過濾之后數(shù)組的第一個元素 :

使用非常簡單的:

如果我們要合并的數(shù)組是多維的關(guān)聯(lián)數(shù)組,那么使用 array_merge_recursive() 函數(shù)進(jìn)行合并的話,不會進(jìn)行鍵名覆蓋,而是將多個相同鍵名的值遞歸合并成一個數(shù)組。

輸出結(jié)果:

其實我們希望子數(shù)組里面的相同的值覆蓋,據(jù)此我們寫了一個函數(shù),用來深度合并多維數(shù)組:

相同的數(shù)組進(jìn)行合并:

得到的結(jié)果是:

一般不推薦使用 wpjam_array_merge 對多維索引數(shù)組進(jìn)行合并。

要從關(guān)聯(lián)數(shù)組中移除并返回指定的鍵值,一般需要兩步操作,先取出,然后 unset 數(shù)組中的鍵值對:

如果每次都這么操作,有點(diǎn)煩人,所以就把這兩個步驟合成一個函數(shù),并且還可以設(shè)置數(shù)組中無此鍵對應(yīng)的元素的時候的默認(rèn)值。

然后直接調(diào)用即可:

PHP 關(guān)聯(lián)數(shù)組可以通過三種方式插入新元素:

由此可見,關(guān)聯(lián)數(shù)組插入元素是無法指定位置的,只能插在最前或者最后面,所以這個函數(shù)就是實現(xiàn) 向關(guān)聯(lián)數(shù)組插入 元素時候指定的 Key 之前 :

比如下面在 $columns 的 'author' 之前插入 ['page_title'='頁面標(biāo)題'] :

PHP處理數(shù)組常用的幾個函數(shù)

一、數(shù)組操作的基本函數(shù)

數(shù)組的鍵名和值

array_values($arr); 獲得數(shù)組的值

array_keys($arr); 獲得數(shù)組的鍵名

array_flip($arr); 數(shù)組中的值與鍵名互換(如果有重復(fù)前面的會被后面的覆蓋)

in_array("apple",$arr); 在數(shù)組中檢索apple

array_search("apple",$arr); 在數(shù)組中檢索apple ,如果存在返回鍵名

array_key_exists("apple",$arr); 檢索給定的鍵名是否存在數(shù)組中

isset($arr[apple]): 檢索給定的鍵名是否存在數(shù)組中

數(shù)組的內(nèi)部指針

current($arr); 返回數(shù)組中的當(dāng)前單元

pos($arr); 返回數(shù)組中的當(dāng)前單元

key($arr); 返回數(shù)組中當(dāng)前單元的鍵名

prev($arr); 將數(shù)組中的內(nèi)部指針倒回一位

next($arr); 將數(shù)組中的內(nèi)部指針向前移動一位

end($arr); 將數(shù)組中的內(nèi)部指針指向最后一個單元

reset($arr; 將數(shù)組中的內(nèi)部指針指向第一個單元

each($arr); 將返回數(shù)組當(dāng)前元素的一個鍵名/值的構(gòu)造數(shù)組,并使數(shù)組指針向前移動一位

list($key,$value)=each($arr); 獲得數(shù)組當(dāng)前元素的鍵名和值

數(shù)組和變量之間的轉(zhuǎn)換

extract($arr);用于把數(shù)組中的元素轉(zhuǎn)換成變量導(dǎo)入到當(dāng)前文件中,鍵名當(dāng)作變量名,值作為變量值

注:(第二個參數(shù)很重要,可以看手冊使用)使用方法 echo $a;

compact(var1,var2,var3);用給定的變量名創(chuàng)建一個數(shù)組

二、數(shù)組的分段和填充

數(shù)組的分段

array_slice($arr,0,3); 可以將數(shù)組中的一段取出,此函數(shù)忽略鍵名

array_splice($arr,0,3,array("black","maroon")); 可以將數(shù)組中的一段取出,與上個函數(shù)不同在于返回的序列從原數(shù)組中刪除

分割多個數(shù)組

array_chunk($arr,3,TRUE); 可以將一個數(shù)組分割成多個,TRUE為保留原數(shù)組的鍵名

數(shù)組的填充

array_pad($arr,5,'x'); 將一個數(shù)組填補(bǔ)到制定長度

三、數(shù)組與棧

array_push($arr,"apple","pear"); 將一個或多個元素壓入數(shù)組棧的末尾(入棧),返回入棧元素的個數(shù)

array_pop($arr); 將數(shù)組棧的最后一個元素彈出(出棧)

四、數(shù)組與列隊

array_shift($arr);數(shù)組中的第一個元素移出并作為結(jié)果返回(數(shù)組長度減1,其他元素向前移動一位,數(shù)字鍵名改為從零技術(shù),文字鍵名不變)

array_unshift($arr,"a",array(1,2));在數(shù)組的開頭插入一個或多個元素

五、回調(diào)函數(shù)

array_walk($arr,'function','words'); 使用用戶函數(shù)對數(shù)組中的每個成員進(jìn)行處理(第三個參數(shù)傳遞給回調(diào)函數(shù)function)

array_mpa("function",$arr1,$arr2); 可以處理多個數(shù)組(當(dāng)使用兩個或更多數(shù)組時,他們的長度應(yīng)該相同)

array_filter($arr,"function"); 使用回調(diào)函數(shù)過濾數(shù)組中的每個元素,如果回調(diào)函數(shù)為TRUE,數(shù)組的當(dāng)前元素會被包含在返回的結(jié)果數(shù)組中,數(shù)組的鍵名保留不變

array_reduce($arr,"function","*"); 轉(zhuǎn)化為單值函數(shù)(*為數(shù)組的第一個值)

六、數(shù)組的排序

通過元素值對數(shù)組排序

sort($arr); 由小到大的順序排序(第二個參數(shù)為按什么方式排序)忽略鍵名的數(shù)組排序

rsort($arr); 由大到小的順序排序(第二個參數(shù)為按什么方式排序)忽略鍵名的數(shù)組排序

usort($arr,"function"); 使用用戶自定義的比較函數(shù)對數(shù)組中的值進(jìn)行排序(function中有兩個參數(shù),0表示相等,正數(shù)表示第一個大于第二個,負(fù)數(shù)表示第一個小于第二個)忽略鍵名的數(shù)組排序

asort($arr); 由小到大的順序排序(第二個參數(shù)為按什么方式排序)保留鍵名的數(shù)組排序

arsort($arr); 由大到小的順序排序(第二個參數(shù)為按什么方式排序)保留鍵名的數(shù)組排序

uasort($arr,"function"); 使用用戶自定義的比較函數(shù)對數(shù)組中的值進(jìn)行排序(function中有兩個參數(shù),0表示相等,正數(shù)表示第一個大于第二個,負(fù)數(shù)表示第一個小于第二個)保留鍵名的數(shù)組排序

通過鍵名對數(shù)組排序

ksort($arr); 按照鍵名正序排序

krsort($arr); 按照鍵名逆序排序

uksort($arr,"function"); 使用用戶自定義的比較函數(shù)對數(shù)組中的鍵名進(jìn)行排序(function中有兩個參數(shù),0表示相等,正數(shù)表示第一個大于第二個,負(fù)數(shù)表示第一個小于第二個)

自然排序法排序

natsort($arr); 自然排序(忽略鍵名)

natcasesort($arr); 自然排序(忽略大小寫,忽略鍵名)

七、數(shù)組的計算

數(shù)組元素的求和

array_sum($arr); 對數(shù)組內(nèi)部的所有元素做求和運(yùn)算

數(shù)組的合并

array_merge($arr1,$arr2); 合并兩個或多個數(shù)組(相同的字符串鍵名,后面的覆蓋前面的,相同的數(shù)字鍵名,后面的不會做覆蓋操作,而是附加到后面)

“+”$arr1+$arr2; 對于相同的鍵名只保留后一個

array_merge_recursive($arr1,$arr2); 遞歸合并操作,如果數(shù)組中有相同的字符串鍵名,這些值將被合并到一個數(shù)組中去。如果一個值本身是一個數(shù)組,將按照相應(yīng)的鍵名把它合并為另一個數(shù)組。當(dāng)數(shù)組 具有相同的數(shù)組鍵名時,后一個值將不會覆蓋原來的值,而是附加到后面

數(shù)組的差集

array_diff($arr1,$arr2); 返回差集結(jié)果數(shù)組

array_diff_assoc($arr1,$arr2,$arr3); 返回差集結(jié)果數(shù)組,鍵名也做比較

數(shù)組的交集

array_intersect($arr1,$arr2); 返回交集結(jié)果數(shù)組

array_intersect_assoc($arr1,$arr2); 返回交集結(jié)果數(shù)組,鍵名也做比較

八、其他的數(shù)組函數(shù)

range(0,12); 創(chuàng)建一個包含指定范圍單元的數(shù)組

array_unique($arr); 移除數(shù)組中重復(fù)的值,新的數(shù)組中會保留原始的鍵名

array_reverse($arr,TRUE); 返回一個單元順序與原數(shù)組相反的數(shù)組,如果第二個參數(shù)為TRUE保留原來的鍵名

//srand((float)microtime()*10000000); 隨機(jī)種子觸發(fā)器

array_rand($arr,2); 從數(shù)組中隨機(jī)取出一個或 多個元素

shuffle($arr); 將數(shù)組的順序打亂

求課吧有很多關(guān)于PHP編程方面的教程

PHP常用函數(shù)有哪些

常用函數(shù)比較多

如:字符串處理函數(shù),數(shù)組函數(shù),日期函數(shù),MySQL函數(shù),文件系統(tǒng)函數(shù),GD函數(shù)庫等

php常用字符串處理函數(shù)實例分析

本文實例講述了php常用字符串處理函數(shù)。分享給大家供大家參考。具體分析如下:

這里只提供幾個簡單常用的函數(shù):

chop執(zhí)行去除空格處理,get_html_translation_table返回轉(zhuǎn)化列表到變量,定義包括HTML編碼的字符串htmlentities,htmlspecialchars_decode

定義包含HTML特殊字符的字符串,nl2br

quotemeta

rtrim等.

定義和用法:chop()

函數(shù)從字符串的末端開始刪除空白字符或其他預(yù)定義字符,該函數(shù)的

rtrim()

函數(shù)的別名.

語法:chop(string,charlist),代碼如下:

復(fù)制代碼

代碼如下:$str="i'm

a

teacher

";

//定義字符串

$result=chop($str);

//執(zhí)行去除空格處理

echo

$result;

//輸出結(jié)果

定義和用法:get_html_translation_table()

函數(shù)返回被

htmlentities()

htmlspecialchars()

函數(shù)使用的翻譯表.

語法:get_html_translation_table(function,quotestyle),代碼如下:

復(fù)制代碼

代碼如下:

$trans=get_html_translation_table(html_entities);

//返回轉(zhuǎn)化列表到變量

print_r($trans);

//輸出轉(zhuǎn)換表

$str="hallo

frau

krmer";

//定義字符串

$encoded=strtr($str,$trans);

//查找字符

echo

$encoded;

//輸出結(jié)果

//

$str="a

'quote'

is

bbold/b";

//定義包括html編碼的字符串

echo

htmlentities($str);

//輸出經(jīng)過處理的字符串

echo

htmlentities($str,

ent_quotes);

//加上可選參數(shù)后的輸出結(jié)果

//

$str='pthis

-

"/p';

//定義包含html特殊字符的字符串

echo

htmlspecialchars_decode($str);

//輸出轉(zhuǎn)換后的內(nèi)容

echo

"br";

echo

htmlspecialchars_decode($str,ent_noquotes);

//不對引號進(jìn)行編碼的輸出結(jié)果

//

$str="cat

isn't

n

dog";

//定義包含換行符的字符串

$result=nl2br($str);

//執(zhí)行轉(zhuǎn)換操作

echo

$result;

//輸出轉(zhuǎn)換后的結(jié)果

//

$str="hello

world.(can

you

hear

me?)";

//定義包含元字符的字符串

$result=quotemeta($str);

//執(zhí)行轉(zhuǎn)換操作

echo

$result;

//輸出轉(zhuǎn)換后的結(jié)果

//

$str="hello

world

";

//定義末尾有空格的字符串

$result=rtrim($str);

//執(zhí)行轉(zhuǎn)換操作

echo

$result;

//輸出轉(zhuǎn)換后的結(jié)果

希望本文所述對大家的php程序設(shè)計有所幫助。

標(biāo)題名稱:php常用數(shù)據(jù)處理函數(shù) php語法和常用的函數(shù)
文章分享:http://m.kartarina.com/article2/hgpooc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)營銷型網(wǎng)站建設(shè)標(biāo)簽優(yōu)化電子商務(wù)品牌網(wǎng)站設(shè)計品牌網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站
主站蜘蛛池模板: yy111111少妇影院无码| 十八禁视频在线观看免费无码无遮挡骂过 | 用舌头去添高潮无码视频 | 97久久精品亚洲中文字幕无码| 国产V亚洲V天堂无码| 亚洲熟妇av午夜无码不卡| JLZZJLZZ亚洲乱熟无码| 亚洲av永久无码精品三区在线4| 高清无码一区二区在线观看吞精| 熟妇无码乱子成人精品| 人妻少妇乱子伦无码专区| 无码丰满熟妇juliaann与黑人 | 欧日韩国产无码专区| 亚洲AV无码精品色午夜在线观看| 成年无码av片完整版| 亚洲中文字幕无码爆乳| 久久久无码精品国产一区 | 无码人妻丰满熟妇啪啪 | 99国产精品无码| 亚洲国产精品无码久久一区二区 | 亚洲av日韩av高潮潮喷无码| 大胆日本无码裸体日本动漫| 亚洲性无码av在线| 无码无套少妇毛多18p| 国产精品无码永久免费888| 国产精品无码aⅴ嫩草| 久久亚洲精品无码网站| 无码一区18禁3D| 67194成是人免费无码| 亚洲av无码成人影院一区| 亚洲av日韩aⅴ无码色老头 | 国产成人无码区免费A∨视频网站| 无码精品人妻一区二区三区人妻斩| 国产色综合久久无码有码| 国产亚洲?V无码?V男人的天堂| 免费无码作爱视频| 亚洲V无码一区二区三区四区观看| 久久久久亚洲AV成人无码| 蜜芽亚洲av无码精品色午夜| 日韩人妻无码精品一专区| 伊人无码精品久久一区二区|