Php 数组外的字符串组合
我有一个2d数组,该数组返回以下值: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 ). 因此,我想知道是否有可能创建一个函数,该函数将以这种方式组合数组
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);