PHP 中的 array_count_values() 函數(shù)可以實現(xiàn)
創(chuàng)新互聯(lián)公司長期為成百上千家客戶提供的網(wǎng)站建設服務,團隊從業(yè)經(jīng)驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為山西企業(yè)提供專業(yè)的成都做網(wǎng)站、成都網(wǎng)站設計,山西網(wǎng)站改版等技術服務。擁有十年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
array_count_values() 函數(shù)用于統(tǒng)計數(shù)組中所有值出現(xiàn)的次數(shù)。
本函數(shù)返回一個數(shù)組,其元素的鍵名是原數(shù)組的值,鍵值是該值在原數(shù)組中出現(xiàn)的次數(shù)。
array_count_values(array)
例如:
?php
$a=array("Cat","Dog","Horse","Dog");
print_r(array_count_values($a));
?
輸出:
Array ( [Cat] = 1 [Dog] = 2 [Horse] = 1 )
遍歷一次就搞定了
既然你要把單號相同的加起來,就可以認為單號是唯一的,所以單號可以做key
$sourceArr?=?array();??//?這里就是你原始數(shù)據(jù)的數(shù)組
$newArr?=?array();??//?這里是相加后處理過的數(shù)組,以單號為key
foreach?($sourceArr?as?$v)?{
if?(array_key_exists($v['id'],?$newArr))?{
$newArr[$v['id']]['fund']?+=?$v['fund'];
}?else?{
$newArr[$v['id']]?=?$v;
}
}
大概就是這么個意思,不過交易類型、賬務類型你可能還要再處理下。
如果最后想得到一個下標從0開始的,非關聯(lián)數(shù)組,再用array_values()函數(shù)處理下就OK了
1.首先,題主應該選一個相似度的計算維度,比如content字段,type字段等;
2.其次,題主考慮一下各個字段的權重,比如type字段必須相同,則讓type字段使用typeWeight(例如賦值0.8)作為乘積的因子,而content字段本身是比較長的,所以需要計算出一個hash值,比如使用特定算法計算出一個hash值,然后把這個hash值按照16進制計算得到10進制數(shù),再給一個權重contentWeight(例如0.2),另外再選取一個字段,比如description描述字段,再給一個權重descriptionWeight...
3.最后得到一個當前插入到表中的記錄綜合hash,typeWeight(contentHashcontentWeight+descriptionHash*descriptionWeight
+...),可能會涉及到大整數(shù)計算,不過PHP有BCMATH擴展可以使用,最終得到一個數(shù)值的綜合hash值,保存到數(shù)據(jù)庫的一個字段中,這個東西就可以理解為本條記錄的特征值。
這個函數(shù)就可以array_unique()
array_unique() 函數(shù)移除數(shù)組中的重復的值,并返回結果數(shù)組。
當幾個數(shù)組元素的值相等時,只保留第一個元素,其他的元素被刪除。
返回的數(shù)組中鍵名不變。
?php
$a=array("a"="Cat","b"="Dog","c"="Cat");
print_r(array_unique($a));
?
輸出:
Array ( [a] = Cat [b] = Dog )
網(wǎng)頁題目:php判斷重復數(shù)據(jù) php重復函數(shù)
本文鏈接:http://jinyejixie.com/article48/ddcoihp.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供電子商務、外貿(mào)網(wǎng)站建設、App開發(fā)、微信小程序、網(wǎng)站策劃、網(wǎng)站內(nèi)鏈
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)