$newVar = Array
(
[a] => Array
(
[0] => php
[1] => sql
)
[b] => Array
(
[0] => javascript
[1] => c
)
[c] => Array
(
[0] => php
[1] => sql
)
[d] => Array
(
[0] => c++
[1] => java
)
)
在上面的多维数组中,如何将带有键的重复值合并到一个数组中,如下所示,
$newVar = Array
(
[0] => Array
(
[0] => a
[1] => c
)
[1] => Array
(
[0] => b
)
[2] => Array
(
[0] => d
)
)
我在下面尝试过,但只删除了重复的键
$new = array_keys(array_map("unserialize", array_unique(array_map("serialize", $newVar))));
echo "<pre>";
print_r($new);
如何在php ..中将重复键合并到多维数组中?
您可以通过值的串联来创建新的键数组。
$newVar = [
'a' => ['php','sql'],
'b' => ['javascript','c'],
'c' => ['php','sql'],
'd' => ['c++','java'],
];
$result = [];
array_walk($newVar, function($val, $key) use(&$result){
$result[implode("",$val)][] = $key;
});
临时结果如下:
array (
'phpsql' =>
array (
0 => "a",
1 => "c",
),
'javascriptc' =>
array (
0 => "b",
),
'c++java' =>
array (
0 => "d",
),
)
然后您可以使用array_values()获得所需的结果。
$result = array_values($result);