Тайный Санта в PHP

Всем вечера) В общем, есть задание написать простецкого тайного санту в php без рассылку по мейлу. в принципе, снизу код и фотка, что получается. вопрос у меня в следующем, я не секу, как сделать вывод нормальным, чтобы в результате выходило например "Fabi = Sebi". Только попрошу с конкретикой, не скажу, что ультра-сильна в программировании, нуждаюсь в четкой инструкции

<?php

$namen = array("Fabi", "Leo", "Stranzl", "Olya", "Moritz", "Sebi", "Peier", "Gerald");
$namen2 = [];

for ( $i = 0; $i < count($namen); $i++) {
    echo $namen[$i] . "<br>";
}

for ( $i = count($namen)-1; $i >= 0; $i--){
    $namen2[] = $namen[$i];
}

var_dump($namen2);
$size = count($namen);

for ( $i=0; $i > $size;  $i++ ) {
    $random = rand(0, count($namen)-1);
    if ($namen[$i] != $namen [$random]) {
        $namen [$i] = $namen[$random];
        echo "Eintrag" . $i . "Jetzt an Stelle" . $random . "<br>";    }
}

?>

вывод реза


Ответы (1 шт):

Автор решения: NoSkill

Можно проще:

// Исходный массив
$namen1 = array("Fabi", "Leo", "Stranzl", "Olya", "Moritz", "Sebi", "Peier", "Gerald");

// Копируем исходный массив
$namen2 = $namen1;

// Перетасовываем скопированный массив
shuffle($namen2);

// Выводим попарно из исходного и скопированного массивов
for ($i = 0; $i < count($namen1); $i++) {
  echo $namen1[$i] . ' будет Тайным Сантой для ' . $namen2[$i] . '<br>';
}

Но в таком случае, кто-то может оказаться Сантой для самого себя. Поэтому нужно проверять такой случай и искать для каждого человека уникального Санту:

// Исходный массив
$namen1 = array("Fabi", "Leo", "Stranzl", "Olya", "Moritz", "Sebi", "Peier", "Gerald");

// Копируем исходный массив
$namen2 = $namen1;

// Играют более одного человека
if (count($namen1) > 1) {
  for ($i = 0; $i < count($namen1); $i++) {

    // Ищем уникального санту:
    do {
      $random = rand(0, count($namen2) - 1);    
    } while ($namen1[$i] == $namen2[$random]);

    // Выводим
    echo $namen2[$random] . ' будет Тайным Сантой для ' . $namen1[$i] . '<br>';

    // Вычеркиваем санту
    unset($namen2[$random]); 

    // Нормализуем массив
    $namen2 = array_values($namen2);
    
  }
}
→ Ссылка