В общем есть два массива. Массив номеров телефонов и людей.
У массива "люди", есть свойство "ID номера телефона".
У массива "номера телефонов" есть свойство "ID", которое и связано со свойством массива "люди".
Пример PHP кода:
PHP
<!DOCTYPE html>
<html>
<head>
<title>
</title>
</head>
<body>
<?php
$peoples = [
0 => [
'ID' => '0',
'PHONE_NUMBER_ID' => '10'
],
1 => [
'ID' => '1',
'PHONE_NUMBER_ID' => '9'
],
2 => [
'ID' => '2',
'PHONE_NUMBER_ID' => '8'
],
3 => [
'ID' => '3',
'PHONE_NUMBER_ID' => '7'
],
4 => [
'ID' => '4',
'PHONE_NUMBER_ID' => '6'
]
];
$phoneNumbers = [
0 => [
'ID' => '6',
'PHONE' => '79888888886'
],
1 => [
'ID' => '7',
'PHONE' => '79888888887'
],
2 => [
'ID' => '8',
'PHONE' => '79888888888'
],
3 => [
'ID' => '9',
'PHONE' => '79888888889'
],
4 => [
'ID' => '10',
'PHONE' => '79888888880'
]
];
echo '<table border="1">';
echo '<thead>';
echo '<tr>';
echo '<th>Люди</th>';
echo '<th>Номера телефонов</th>';
echo '</tr>';
echo '</thead>';
echo '<tbody>';
foreach ($peoples as $peopleProp) {
echo '<tr>';
echo '<td>' . $peopleProp['ID'] . '</td>';
foreach ($phoneNumbers as $pnProps) {
if ($peopleProp['PHONE_NUMBER_ID'] == $pnProps['ID']) {
echo '<td>Номер телефона ' . $pnProps['PHONE'] . '</td>';
} else {
echo '<td> - </td>';
}
}
echo '</tr>';
}
echo '</tbody>';
echo '</table>';
?>
</body>
</html>
Результат:
То есть в моём случае если выведет номер телефона и прочерк. Если ещё третий номер телефона добавить, которые не совпадает по ID ни с одним из массива людей, то выведется три прочерка.
Пробовал break использовать, но если в if поставить, то всё равно else несколько раз сработает пока условие if не выполнится, в else если поставить, то он при первом несовпадении перестанет проходить массив, а у нас дальше по массиву есть совпадение. Если и туда и туда вставить, то опять в случае как с else всё сломается, дальше не пойдёт.