摘要:注意鍵名保持不變。數(shù)據(jù)的比較是用進(jìn)行的。如果認(rèn)為第一個參數(shù)小于,等于,或大于第二個參數(shù)時必須分別返回一個小于零,等于零,或大于零的整數(shù)。這和不同,后者使用了內(nèi)部函數(shù)來比較數(shù)據(jù)。
array_udiff,在php的官網(wǎng)文檔里是這么解釋的
(PHP 5)
array_udiff — 用回調(diào)函數(shù)比較數(shù)據(jù)來計算數(shù)組的差集
說明
array array_udiff ( array $array1 , array $array2 [, array $ ... ], callable $data_compare_func ) array_udiff() 返回一個數(shù)組,該數(shù)組包括了所有在 array1 中但是不在任何其它參數(shù)數(shù)組中的值。注意鍵名保持不變。數(shù)據(jù)的比較是用 data_compare_func 進(jìn)行的。如果認(rèn)為第一個參數(shù)小于,等于,或大于第二個參數(shù)時必須分別返回一個小于零,等于零,或大于零的整數(shù)。這和 array_diff() 不同,后者使用了內(nèi)部函數(shù)來比較數(shù)據(jù)。
個人認(rèn)為這個解釋很模糊,第三個參數(shù)或者說匿名函數(shù)參數(shù)返回的結(jié)果會對整個函數(shù)返回的結(jié)果有什么影響?
在查過資料后做個總結(jié):
所有的數(shù)組參數(shù)會進(jìn)行比較, 比如$array1, $array2兩個數(shù)組比較,篩選出位于$array1而不屬于$array2中數(shù)組元素, 如果第三個參數(shù)返回的結(jié)果是0或者-1,那么返回的結(jié)果里就不會包含位于第一個數(shù)組中的元素,如果返回的是1, 則會包含位于第一個數(shù)組中的元素。
例:
$arr1 = array("cat","mouse","horse"); $arr2 = array("cat","mouse"); print_r(array_udiff($arr1,$arr2,function($a, $b){return 0;}));
此時返回的結(jié)果就會是array(),空數(shù)組,假如return 1,那么返回的就是array("cat","mouse","horse")
$arr1 = array("cat","mouse","horse"); $arr2 = array("cat","mouse"); print_r(array_udiff($arr1,$arr2,function($a, $b){return ($a==$b)?0:1;}));
這個時候就只會在兩個數(shù)組不同的時候輸出$arr1中的元素,這就達(dá)到了從數(shù)組$arr1中剔除與$arr2中相同的元素
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/20788.html
摘要:求數(shù)組差集函數(shù)函數(shù)只檢查了多維數(shù)組中的一維。自定義函數(shù)必須返回一個小于零,等于零,或大于零的整數(shù)。用自定義函數(shù)比較的值,函數(shù)參數(shù)為數(shù)組的值。 求數(shù)組差集函數(shù) 函數(shù)只檢查了多維數(shù)組中的一維??梢杂?array_diff($array1[0], $array2[0]) 檢查更深的維度。 u:自定義函數(shù)比較,a(association):同時比較鍵和值。 自定義函數(shù)callable $v...
摘要:源碼年來都沒有動手跑一跑內(nèi)置的函數(shù)。這一跑才發(fā)現(xiàn)平時自鳴得意的那些算法是有原生實現(xiàn)的,頓時有一種啪啪啪被打臉的感覺。希望亡羊補牢,為時不晚吧。下面是從里摘抄的歸納對比片段,希望對你有所啟發(fā)。 Demo源碼 3年來都沒有動手跑一跑PHP內(nèi)置的Array函數(shù)。 這一跑才發(fā)現(xiàn)平時自鳴得意的那些算法是有原生實現(xiàn)的,頓時有一種啪啪啪被打臉的感覺。 希望亡羊補牢,為時不晚吧。 下面是從Demo里摘...
摘要:我們可以做一些小改進(jìn)將的拋出異常代碼挪入父類屬于最小單位。完整代碼當(dāng)我們需要在某個子類,實現(xiàn)個性化的業(yè)務(wù)邏輯時,組合模式的缺陷之一正在顯現(xiàn)出來簡化的前提是所有的類都繼承同一個基類,簡化優(yōu)點有時是以降低對象安全為代價。 開篇 如果你注意了目錄,會知道:組合是一個新的開始。在系統(tǒng)代碼設(shè)計的過程中,我們通過繼承來組織代碼,父類與子類,實質(zhì)上對應(yīng)了業(yè)務(wù)的整體規(guī)范與具體需求。所以,我們需要將類按...
摘要:獲取元素數(shù)量獲取數(shù)組元素總數(shù)獲取所有的鍵獲取數(shù)組所有鍵組成的數(shù)組。遍歷數(shù)組元素獲取數(shù)組當(dāng)前元素。數(shù)組指針前移一步。數(shù)組指針指向最后一個元素。其他數(shù)組操作反轉(zhuǎn)數(shù)組。隨機取出數(shù)組元素。對數(shù)組的所有值求和。 這幾天工作之余整理和分類了PHP 中常用的數(shù)組相關(guān)的函數(shù)。如有錯誤和遺漏,請留言指正! 數(shù)組函數(shù)整理 創(chuàng)建數(shù)組函數(shù) array array ([ mixed $... ] ):創(chuàng)建數(shù)組...
摘要:文章來自原文歡迎來到給開發(fā)者的源碼系列的第二部分。是在內(nèi)部代表任意一個變量的定義。這種情況下函數(shù)會拋出警告,而此函數(shù)馬上返回會返回給的用戶層代碼。原因是,是少數(shù)通過而不是擴展定義的函數(shù)。下一部分下一部分會再次發(fā)表在。 文章來自:http://www.hoohack.me/2016/02/10/understanding-phps-internal-function-definitio...
閱讀 1830·2021-11-23 09:51
閱讀 950·2021-10-08 10:05
閱讀 3434·2021-09-26 09:55
閱讀 1045·2021-09-22 15:21
閱讀 1635·2021-09-09 09:33
閱讀 1274·2019-08-30 15:56
閱讀 1287·2019-08-30 15:55
閱讀 971·2019-08-30 13:19