php - 在二维数组中分解多个以逗号分隔的字符串,然后获取所有唯一值

标签 php arrays csv duplicates explode

我有一个二维数组,它返回这个值:

Array ( 
   [0] => Array ( 
          [0] => wallet,pen 
          [1] => perfume,pen 
   ) 
   [1] => Array ( 
          [0] => perfume, charger 
          [1] => pen,book 
   ).

除此之外,我想知道是否有可能创建一个函数,以这种方式组合数组,并创建一个新的:

如果例如 [0] => Array ( [0] => wallet,pen [1] => perfume,pen ) 那么应该等于 [0] => Array ( [0] => wallet,pen, perfume ) 因为有一个常用词 else 什么都不做。

然后将每个单词作为字符串检索以供进一步操作。


如何使这样的数组的值唯一。 Array ( [0] => Array ( [0] => wallet [1] => pen [2] => perfume [3] => pen) ) 因为有两支笔我想要以这种方式删除它 ( [0] => Array ( [0] => wallet [1] => pen [2] => perfume) )

最佳答案

这只是映射数组和组合内部数组的问题:

$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);

Demo

这首先根据逗号拆分所有字符串。然后使用 array_merge() 将它们合并在一起,并使用 array_unique() 删除重复项。

另请参阅:call_user_func_array() , array_map()

关于php - 在二维数组中分解多个以逗号分隔的字符串,然后获取所有唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15188504/

相关文章:

php - 使用 PHP 从 MySQL DB 更改 CSV 格式

linux - 在 Linux 中,是否有将 CSV 文件转换为 SQLite 文件的命令?

Java - 读取 CSV 并将对象 [] 值转换为字符串值

php - 从 Android 手机上传图片到笔记本电脑需要太长时间,最后上传时显示“Windows 照片查看器无法显示,因为文件为空”

javascript - 对 Google 隐藏部分 HTML 页面

php - PHP 中的 strpos 函数问题找不到针

java - 按升序对整数进行排序

java - 读取文本文件并添加到列表时出现内存不足错误

php - 使用 PHP 创建 Android 应用程序

javascript - 在 HandlebarsJS 中显示多个数组