PHP многомерный массив

0

У меня возникают проблемы с попыткой выяснить способ, которым я могу решить следующее: где, если элементы массивов являются общими для друг друга, они сливаются, образуя новый массив друг с другом.

Например, если у меня есть:

$array = [ [0,4], [1,2], [1,3], [3,2] ]

Тогда новый массив будет выглядеть так:

$newarray = [ [0,4], [1,2,3] ]

Если массивы $array которые имеют общие элементы, затем сливаются, я пробовал пару способов, таких как цикл по массиву и сравнение отдельных элементов, но просто не могу обойти его, любая помощь будет отличной

Еще один простой пример:

$array2 = [ [0,1], [3,4], [4,2], [2,3], [6,5] ];

$newarray2 = [ [0,1], [2,3,4], [5,6]]

благодаря

Теги:
arrays
multidimensional-array

1 ответ

0
$array2 = [ [0,1], [3,4], [4,2], [2,3], [6,5] ];
$wrk = array_count_values(call_user_func_array('array_merge', $array2));
ksort($wrk);
$result = [];
$prevValue = -INF;
$i = -1;
foreach($wrk as $key => $value) {
    if ($value != $prevValue) {
        $prevValue = $value;
        ++$i; 
    }
    $result[$i][] = $key;
}
var_dump($result);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню