Rinse and repeat - exchanging u1 and u2
$new = [];
foreach ($array as $a) {
if (!isset($new[$a['u1']])) {
$new[$a['u1']] = [];
}
$new[$a['u1']][] = $a['u2'];
//repeat exchanging u1 and u2
if (!isset($new[$a['u2']])) {
$new[$a['u2']] = [];
}
$new[$a['u2']][] = $a['u1'];
}
//
// Output $new array
//
echo '<pre>';
foreach ($new as $u1 => $u2s) {
printf('<br><b>%4d</b> | ', $u1);
foreach ($u2s as $u) {
printf('%4d ⋮', $u);
}
}