КОНТЕКСТ
В последнее время я пытался php нарисовать стр aws. Если вы не знаете, что такое рисование str aws, это, в основном, кто-то, получивший имя кого-то другого, и что кто-то другой получает имя другого человека и т.д. Чтобы было понятнее, случайно сгенерированный код должен выглядеть следующим образом:
(пример с 4 людьми)
Person A drew person B
Person B drew person D
Person C drew person A
Person D drew Person B
ATTEMPT 1
Чтобы добиться этого, я попытался использовать следующий код:
$name = $_POST["names"]; // <-- name-array
$participants = $_POST["participants"]; // <-- stores the amount of participants
$arrX = $name;
for($i = 1; $i <= $participants[0]; $i++) {
echo $name[$i-1];
echo " drew ";
${"randIndex$i"} = array_rand($arrX, 1);
echo $arrX[${"randIndex$i"}];
echo "<br><br>";
}
ПРОБЛЕМА 1
Хотя это действительно дает вывод, это не является удовлетворительным , Человек может нарисовать себя, что не разрешено. Я хочу, чтобы участники нарисовали человека, отличного от себя.
Лучше всего предположить, что для того, чтобы это исправить, мне нужно работать с операторами if. Я просто не знаю, как бы это сделать наиболее подходящим способом.
edit: ПРОБЛЕМА 2
Один и тот же вывод также позволяет двум людям рисовать одинаково человек. Т.е. человек А и Б (а возможно и больше) рисуют человека C. Я хочу, чтобы каждый мог нарисовать человека, который еще не был нарисован.