Если предположить что пользоваться методами работы с массивами вы умеете, то алгоритмически решение будет выглядить так:
1) Сделайте массив плоским
[
['alex', '111111'],
['alex', 2222222],
...
]
2) Сгруппируйте по номеру телефона, чтобы получилось
[
'111111' => ['alex', 'john'],
'222222' => ['alex']
...
]
3) Отфильтруйте элементы где значение имеет больше одного элемента.
Задача сделана
UPDATE:
Простой код
$data = [
'alex' => [
"1111111",
"2222222",
"1726354"
],
'john' => [
"1111111",
"3333333",
"7162534"
],
'michel' => [
"1111111",
"453453453",
"3333333"
]
] ;
$res = [];
foreach ($data as $name => $phones) {
foreach($phones as $phone) {
if (!array_key_exists($phone, $res)) {
$res[$phone] = [];
}
$res[$phone][] = $name;
}
}
print_r($res)
Array
(
[1111111] => Array
(
[0] => alex
[1] => john
[2] => michel
)
[2222222] => Array
(
[0] => alex
)
[1726354] => Array
(
[0] => alex
)
[3333333] => Array
(
[0] => john
[1] => michel
)
[7162534] => Array
(
[0] => john
)
[453453453] => Array
(
[0] => michel
)
)