如何使用php将重复值键合并到一个数组中

如何使用php将重复值键合并到一个数组中,php,Php,在上面的多维数组中,如何将带键的重复值合并到一个数组中,如下所示 $newVar = Array ( [a] => Array ( [0] => php [1] => sql ) [b] => Array ( [0] => javasc

在上面的多维数组中,如何将带键的重复值合并到一个数组中,如下所示

 $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_键(array_映射(“unserialize”),array_惟一(array_映射(“serialize”,$newVar)));
回声“;
印刷(新);

如何在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",
  ),
)
然后可以使用数组_值获得所需的结果​​()


您可以通过值的串联创建一个新的键数组

$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",
  ),
)
然后可以使用数组_值获得所需的结果​​()