Php 数组外的字符串组合

Php 数组外的字符串组合,php,arrays,compare,Php,Arrays,Compare,我有一个2d数组,该数组返回以下值: Array ( [0] => Array ( [0] => wallet,pen [1] => perfume,pen ) [1] => Array ( [0] => perfume, charger [1] => pen,book ). 因此,我想知道是否有可能创建一个函数,该函数将以这种方式组合数组

我有一个2d数组,该数组返回以下值:

Array ( 
   [0] => Array ( 
          [0] => wallet,pen 
          [1] => perfume,pen 
   ) 
   [1] => Array ( 
          [0] => perfume, charger 
          [1] => pen,book 
   ).
因此,我想知道是否有可能创建一个函数,该函数将以这种方式组合数组,并创建一个新函数:

例如,如果
[0]=>数组([0]=>钱包、笔[1]=>香水、笔)
则应等于
[0]=>数组([0]=>钱包、钢笔、香水)
因为有一个共同的词,其他什么都不做

然后,将每个单词作为字符串检索,以便进行进一步的操作


如何使这样一个数组的值唯一<代码>数组([0]=>数组([0]=>钱包[1]=>笔[2]=>香水[3]=>笔))由于笔有两次,我希望通过这种方式将其删除
([0]=>数组([0]=>钱包[1]=>笔[2]=>香水))
尝试以下操作:

$array = Array (Array ( "wallet,pen", "perfume,pen" ), Array ( "perfume, charger", "pen,book" ));
$res   = array();
foreach($array as $key=>$val){
   $temp  = array();
   foreach($val as $k=>$v){
     foreach(explode(",",$v) as $vl){
        $temp[]  = $vl;
     }
   }
   if(count(array_unique($temp)) < count($temp)){
     $res[$key] = implode(",",array_unique($temp));
   }
   else{
     $res[$key] = $val;
   }
}

echo "<pre>";
print_r($res);

只需映射数组并组合内部数组:

首先根据逗号分割所有字符串。然后将它们与
array\u merge()
合并在一起,并使用
array\u unique()
删除重复项


另请参见:,

请参见。这是两个阵列组合的结果。没有人会为您编写完整的代码。你必须用自己的大脑,试着去写。如果你失败了,你可以展示你的代码,有人会帮助你。这就是stackoverflow的工作原理。我不是在寻找代码,而是在寻找提示,如果你有更好的数据结构的想法,我可以using@StringerB我会给你提供工具,你自己试试看。完成此任务所需的函数:
循环、分解()、内爆()、修剪()
。好的编码!编辑了答案请现在检查我尝试了你的方法,但似乎它只工作了一次,我添加了一个具有类似值的数组,但它没有做任何事情。谢谢你的意见。
Array
(
    [0] => wallet,pen,perfume
    [1] => Array
        (
            [0] => perfume, charger
            [1] => pen,book
        )

)
$x = [['wallet,pen', 'perfume,pen'], ['perfume,charger', 'pen,book']];

$r = array_map(function($item) {
    return array_unique(call_user_func_array('array_merge', array_map(function($subitem) {
        return explode(',', $subitem);
    }, $item)));
}, $x);