具體實(shí)例代碼如下:
創(chuàng)新互聯(lián)主要從事網(wǎng)頁設(shè)計、PC網(wǎng)站建設(shè)(電腦版網(wǎng)站建設(shè))、wap網(wǎng)站建設(shè)(手機(jī)版網(wǎng)站建設(shè))、響應(yīng)式網(wǎng)站建設(shè)、程序開發(fā)、網(wǎng)站優(yōu)化、微網(wǎng)站、重慶小程序開發(fā)等,憑借多年來在互聯(lián)網(wǎng)的打拼,我們在互聯(lián)網(wǎng)網(wǎng)站建設(shè)行業(yè)積累了豐富的成都網(wǎng)站制作、網(wǎng)站建設(shè)、網(wǎng)站設(shè)計、網(wǎng)絡(luò)營銷經(jīng)驗(yàn),集策劃、開發(fā)、設(shè)計、營銷、管理等多方位專業(yè)化運(yùn)作于一體。
?php
// 刪除數(shù)組中相同元素,只保留一個相同元素
function formatArray($array)
{
sort($array);
$tem = "";
$temarray = array();
$j = 0;
for($i=0;$icount($array);$i++)
{
if($array[$i]!=$tem)
{
$temarray[$j] = $array[$i];
$j++;
}
$tem = $array[$i];
}
return $temarray;
}
//測試 調(diào)用函數(shù)
$array = array('aa','bb','aa',3,4,5,5,5,5,'bc');
$arr = formatArray($array);
print_r($arr);
?
array_unique函數(shù)提供了過濾重復(fù)的值的功能,但是該函數(shù)只能處理一維數(shù)組,如果遇到多維數(shù)組我們可以現(xiàn)將其轉(zhuǎn)化為一維數(shù)組。示例代碼如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/*
* $data 是你要處理數(shù)據(jù)
* $result 是輸出的結(jié)果
*/
//將其轉(zhuǎn)化為一維數(shù)組
foreach ($data as $row) {
$row = serialize($row);
}
unset($row);
$data = array_unique($data);
//還原多維數(shù)組
foreach ($data as $row) {
$row = unserialize($row);
}
unset($row);
不好意思 樓主要求,我看錯了,追加下面的代碼
1
2
3
4
5
6
7
8
9
10
11
12
$result=array();
$tmp_arr=array();
foreach ($data as $row) {
$tmp_arr[$row['confuguarable_sku']][] = $row['size'];
}
//將尺寸用逗號拼接
foreach ($tmp_arr as $sku = $size) {
$result[] = array('confuguarable_sku'=$sku, 'size'=implode(",", $size));
}
echo "pre";
//輸出結(jié)果
print_r($result);
(1)利用php提供的函數(shù),array_unique和array_diff_assoc來實(shí)現(xiàn)
.代碼如下:
?php
function FetchRepeatMemberInArray($array) {
// 獲取去掉重復(fù)數(shù)據(jù)的數(shù)組
$unique_arr = array_unique ( $array );
// 獲取重復(fù)數(shù)據(jù)的數(shù)組
$repeat_arr = array_diff_assoc ( $array, $unique_arr );
return $repeat_arr;
}
// 測試用例
$array = array (
'apple',
'iphone',
'miui',
'apple',
'orange',
'orange'
);
$repeat_arr = FetchRepeatMemberInArray ( $array );
print_r ( $repeat_arr );
?
(2)自己寫函數(shù)實(shí)現(xiàn)這個功能,利用兩次for循環(huán)
.代碼如下:
?php
function FetchRepeatMemberInArray($array) {
$len = count ( $array );
for($i = 0; $i $len; $i ++) {
for($j = $i + 1; $j $len; $j ++) {
if ($array [$i] == $array [$j]) {
$repeat_arr [] = $array [$i];
break;
}
}
}
return $repeat_arr;
}
// 測試用例
$array = array (
'apple',
'iphone',
'miui',
'apple',
'orange',
'orange'
);
$repeat_arr = FetchRepeatMemberInArray ( $array );
print_r ( $repeat_arr );
?
遍歷一次就搞定了
既然你要把單號相同的加起來,就可以認(rèn)為單號是唯一的,所以單號可以做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;
}
}
大概就是這么個意思,不過交易類型、賬務(wù)類型你可能還要再處理下。
如果最后想得到一個下標(biāo)從0開始的,非關(guān)聯(lián)數(shù)組,再用array_values()函數(shù)處理下就OK了