Po pierwsze, przepraszam, jeśli jest to źle sformułowane, ponieważ jestem początkującym w kodzie.Używanie zmiennych losowych w tablicach
Obecnie pracuję na kursie informatycznym online, jednak jestem bardzo zdezorientowany, jak wykonać jedną małą część. Do tego działania musimy użyć tablic, w których użytkownik ma wiele wyborów, a każdy inny wybór ma inny/unikalny tekst. Wszystko działa dobrze, z tym wyjątkiem, że potrzebuję opcji wyboru losowego wyboru, jednak jestem nieco zdezorientowany, jak to zrobić. Z mojego kodu możesz zobaczyć opcje 1-8. Chcę, żeby losowo wybrał jedną z opcji.
Oto mój kod:
<?php
$train[0] = "Canada";
$train[1] = "Sahara Desert";
$train[2] = "Russia";
$train[3] = "Chernobyl";
$train[4] = "United States";
$train[5] = "North Korea";
$train[6] = "Germany";
$train[7] = "Hawaii";
?>
<!DOCTYPE html>
<html>
<head>
Took out everything here, it's not important.
</head>
<body>
<center>
<h1>Vacation Time!</h1>
<h4>You and your family just won the lottery! You all want to go on vacation, but nobody can agree where to go. Inside each train cart has a card with a location written on it. Whatever you find is where you're going! </h4>
<form name="form1" action="activity-2-7-arrays-a.php" method="post">
<label>Which cart on the train do you want to choose?</label>
<br>
<select name="cart" required>
<option value="1">First Cart</option>
<option value="2">Second Cart</option>
<option value="3">Third Cart</option>
<option value="4">Fourth Cart</option>
<option value="5">Fifth Cart</option>
<option value="6">Sixth Cart</option>
<option value="7">Seventh Cart</option>
<option value="8">Eight Cart</option>
<option value="show">Show all options</option>
<option value="any">Choose Randomly</option>
<br>
</select><br/>
<input type="submit" name="subButton" class="subButton" value="Go!"/><br/>
</form>
<h1><u>Final Results</u></h1>
<?php
if($_POST['subButton']) {
$cart = $_POST['cart'];
$roll = rand(1,9);
if($cart == show) {
for($x = 1; $x <= 9; $x++) {
echo "<p> You could have ender up in... </p>";
echo "<h2> " . $train[$x] . "</h2>";
}
return;
}
echo "<h2>"."Well, it looks like you're going to " . $train[$cart] . "! Have fun! </h2>";
}
return;
if ($cart == $roll) {
}
echo "<h2>"."Can't handle the pressure? You were selected to go to " . $train[$roll] . "! Have fun! </h2>";
?>
Jestem pewien, że to jest trochę brudny, również. Mam nadzieję, że rozumiesz o co mi chodzi. Jeśli jesteś w stanie wyjaśnić mi odpowiedź, byłoby to niezwykle pomocne. Dziękuję :)
Twój test 'if ($ cart == $ roll)' jest nieprawidłowy. Porównujesz wybór użytkownika z generowaną losową liczbą. Przyjrzyj się bliżej innym swoim stwierdzeniom, i myślę, że możesz to zrozumieć. –
Jest kilka problemów z kodem: Najpierw powinieneś zmienić 'if ($ cart == show)' na 'if ($ cart == 'show')'. Po drugie, powinieneś zdefiniować $ train jako tablicę, więc umieść '$ train = array()' na górze. Aby odpowiedzieć na twoje pytanie, myślę, że powinieneś użyć 'array_shuffle()' na $ train, aby wybrać losowo listę. –
Powinieneś wstawić 'array_shuffle ($ train);' zanim wyświetlisz wynik ("Wygląda na to, że zamierzasz ..."). Ponadto, wszystkie rzeczy z drugiej instrukcji 'return;' nie będą działać z powodu 'return;', ale i tak tego nie potrzebujesz. –