69 字
1 分钟

php二维数组数据指定键唯一合并

2018-10-15
2019-08-07

例子:

array:11 [
0 => array:2 [
"publicadtype" => "h5-zmiti"
"num" => 16
]
1 => array:2 [
"publicadtype" => "图片-zmiti"
"num" => 88
]
2 => array:2 [
"publicadtype" => "视频-zmiti"
"num" => 13
]
3 => array:2 [
"publicadtype" => "音频-zmiti"
"num" => 30
]
4 => array:2 [
"publicadtype" => "视频-zmiti"
"notaudit" => 4
]
5 => array:2 [
"publicadtype" => "h5-zmiti"
"trial" => 16
]
6 => array:2 [
"publicadtype" => "图片-zmiti"
"trial" => 88
]
7 => array:2 [
"publicadtype" => "视频-zmiti"
"trial" => 8
]
8 => array:2 [
"publicadtype" => "音频-zmiti"
"trial" => 27
]
9 => array:2 [
"publicadtype" => "视频-zmiti"
"initialfailure" => 1
]
10 => array:2 [
"publicadtype" => "音频-zmiti"
"thefinal" => 3
]
]

将此数组变为:

array:4 [
0 => array:3 [
"publicadtype" => "h5-zmiti"
"num" => 16
"trial" => 16
]
1 => array:3 [
"publicadtype" => "图片-zmiti"
"num" => 88
"trial" => 88
]
2 => array:5 [
"publicadtype" => "视频-zmiti"
"num" => 13
"notaudit" => 4
"trial" => 8
"initialfailure" => 1
]
3 => & array:4 [
"publicadtype" => "音频-zmiti"
"num" => 30
"trial" => 27
"thefinal" => 3
]
]

可用代码:

$json = '[{"publicadtype":"h5-zmiti","num":16},{"publicadtype":"\u56fe\u7247-zmiti","num":88},{"publicadtype":"\u89c6\u9891-zmiti","num":13},{"publicadtype":"\u97f3\u9891-zmiti","num":30},{"publicadtype":"\u89c6\u9891-zmiti","notaudit":4},{"publicadtype":"h5-zmiti","trial":16},{"publicadtype":"\u56fe\u7247-zmiti","trial":88},{"publicadtype":"\u89c6\u9891-zmiti","trial":8},{"publicadtype":"\u97f3\u9891-zmiti","trial":27},{"publicadtype":"\u89c6\u9891-zmiti","initialfailure":1},{"publicadtype":"\u97f3\u9891-zmiti","thefinal":3}]';
$data = json_decode($json, true);
foreach ($data as $nk => &$nv) {
foreach ($data as $nnk => $nnv) {
if ($nk !== $nnk) {
if (in_array($nv['publicadtype'], $nnv)) {
$nv = array_merge($nv, $nnv);
if ($nnk !== $nk) {
unset($data[$nnk]);
}
}
}
}
}

ps:此代码有一个重复赋值找出修改方法吧

数组复杂处理常见的引用符号,加上后有些重复处理和赋值会直接操作原有数组.

php二维数组数据指定键唯一合并
https://www.motouguai.com/technology-php/php-twodimensional-array-data-specified-key-unique-merge/
作者
Murry
发布于
2018-10-15
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时