Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP将相似的值合并到一个数组中_Php - Fatal编程技术网

PHP将相似的值合并到一个数组中

PHP将相似的值合并到一个数组中,php,Php,$arr=(a=>array(1,2,3),b=>array(1,2,3),c=>array(4,5),d=>array(8,9,10),e=>array(8,9),f=>array(9,10) 我希望合并类似的值,以便得到: 问题#1(类似值,难度更大): $new_arr=(a_b=>数组(1,2,3),c=>(4,5),d_e_f=>数组(8,9,10)) 问题2(值完全相同,更容易): $new_arr=(a_b=>数组(1,2,3),c=>(4,5),d=>数组(8,9,10)

$arr=(a=>array(1,2,3),b=>array(1,2,3),c=>array(4,5),d=>array(8,9,10),e=>array(8,9),f=>array(9,10)

我希望合并类似的值,以便得到:

  • 问题#1(类似值,难度更大):
$new_arr=(a_b=>数组(1,2,3),c=>(4,5),d_e_f=>数组(8,9,10))

  • 问题2(值完全相同,更容易):
$new_arr=(a_b=>数组(1,2,3),c=>(4,5),d=>数组(8,9,10),e=>数组(8,9),f=>数组(9,10))

解决上述问题最有效的方法是什么?这可能是一个很难解决的问题:D

谢谢!

我将此称为查找图形的“连接组件”

第2步可能的第一步(与数组一起工作但不创建
A\u b
键名的
array\u unique
版本)在用户提供的array\u unique注释中:
$unique=array_unique($arr,SORT_REGULAR);
foreach (array_diff_key($arr,$unique) as $key=>$value) {
    $oldkey=array_search($value,$unique);
    unset($unique[$oldkey]);
    $unique[$oldkey.'_'.$key]=$value;
}
var_dump($unique);