本文目錄一覽:
PHP如何合併數組當中有相同數值的數組
array_unique函數提供了過濾重複的值的功能,但是該函數只能處理一維數組,如果遇到多維數組我們可以現將其轉化為一維數組。示例代碼如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/*
* $data 是你要處理數據
* $result 是輸出的結果
*/
//將其轉化為一維數組
foreach ($data as $row) {
$row = serialize($row);
}
unset($row);
$data = array_unique($data);
//還原多維數組
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”;
//輸出結果
print_r($result);
php中,合併一個數組裡相同的值。
直接用array_unique()函數即可
$arr = [‘0006′,’0006′,’0005’];
print_r($arr); //Array ( [0] = 0006 [1] = 0006 [2] = 0005 )
$arr = array_unique($arr);
print_r($arr); //Array ( [0] = 0006 [2] = 0005 )
php將數組鍵值相同的數組合併數組為一個數組
把’huaka’改成了’huakai’似乎是一個人
?php
$a=array(
array(“username”=”piaoyudesi”,”email”=”piaoyudesi@163.com”,”address”=”shenzhen”,”item_id”=”10058″,”item_title”=”BPS8″),
array(“username”=”huakai”,”email”=”huakai@163.com”,”address”=”zhongshan”,”item_id”=”10087″,”item_title”=”BPS9″),
array(“username”=”huakai”,”email”=”huakai@163.com”,”address”=”zhongshan”,”item_id”=”10047″,”item_title”=”BPS10″),
array(“username”=”piaoyudesi”,”email”=”piaoyudesi@163.com”,”address”=”shenzhen”,”item_id”=”10042″,”item_title”=”BPS10″),
array(“username”=”jimowenxin”,”email”=”jimowenxin@163.com”,”address”=”zhuhai”,”item_id”=”10031″,”item_title”=”BPS18″)
);
$u=array();
foreach($a as $k=$e){
$name=$e[‘username’];
if(!isset($u[$name])){
$u[$name]=$e;
unset($u[$name][‘item_id’],$u[$name][‘item_title’]);
}
$u[$name][‘goods’][]=array(‘item_id’=$e[‘item_id’],’item_title’=$e[‘item_title’]);
}
$a=array_values($u); unset($u);
print_r($a);
=========
Array
(
[0] = Array
(
[username] = piaoyudesi
[email] = piaoyudesi@163.com
[address] = shenzhen
[goods] = Array
(
[0] = Array
(
[item_id] = 10058
[item_title] = BPS8
)
[1] = Array
(
[item_id] = 10042
[item_title] = BPS10
)
)
)
[1] = Array
(
[username] = huakai
[email] = huakai@163.com
[address] = zhongshan
[goods] = Array
(
[0] = Array
(
[item_id] = 10087
[item_title] = BPS9
)
[1] = Array
(
[item_id] = 10047
[item_title] = BPS10
)
)
)
[2] = Array
(
[username] = jimowenxin
[email] = jimowenxin@163.com
[address] = zhuhai
[goods] = Array
(
[0] = Array
(
[item_id] = 10031
[item_title] = BPS18
)
)
)
)
php 合併相同元素數組
先合併
array array_merge ( array $array1 [, array $… ] );
再去重
array array_unique ( array $array [, int $sort_flags = SORT_STRING ] )
php 合併多維數組中相同的值
$arr = array(
array(
array(
“stocknotifyId” = 1,
“sku” = ‘13809_BL_37’,
“email” = ‘huang@aaa.com’
),
array(
“stocknotifyId” = 3,
“sku” = ‘13809_BL_37’,
“email” = ‘hrheve@dfwef.com’
),
array(
“stocknotifyId” = 5,
“sku” = ‘13809_BL_37’,
“email” = ‘dfsfs@dfsf.com’
)
),
array(
array(
“stocknotifyId” = 2,
“sku” = ‘13809_B_39’,
“email” = ‘huang@aaa.com’
)
),
array(
array(
“stocknotifyId” = 4,
“sku” = ‘13809_BL_39’,
“email” =’hrheve@dfwef.com’
)
)
);
$re = array();
foreach($arr as $a) {
foreach ($a as $v) {
$tmp_v = $v;
unset($tmp_v[’email’]);
if(isset($re[$v[’email’]])) {
$re[$v[’email’]][] = $tmp_v;
}else{
$re[$v[’email’]] = array($tmp_v);
}
}
}
print_r($re);
!– output —
Array
(
[huang@aaa.com] = Array
(
[0] = Array
(
[stocknotifyId] = 1
[sku] = 13809_BL_37
)
[1] = Array
(
[stocknotifyId] = 2
[sku] = 13809_B_39
)
)
[hrheve@dfwef.com] = Array
(
[0] = Array
(
[stocknotifyId] = 3
[sku] = 13809_BL_37
)
[1] = Array
(
[stocknotifyId] = 4
[sku] = 13809_BL_39
)
)
[dfsfs@dfsf.com] = Array
(
[0] = Array
(
[stocknotifyId] = 5
[sku] = 13809_BL_37
)
)
)
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/234070.html