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