Ik heb een stukje php script die 3 unieke uitkomsten moet aanmaken van een eraf som.
Ik krijg af en toe nog steeds een dubbele uitkomst, kan iemand me vertellen wat ik niet goed doe?
<?php
$_SESSION['opdracht'] = array();
function in_array_r($needle, $haystack, $strict = false) {
foreach ($haystack as $item) {
if (($strict ? $item === $needle : $item == $needle) || (is_array($item) && in_array_r($needle, $item, $strict))) {
return true;
}
}
return false;
}
// zet een max voor de hoogste uitkomst
if ($_GET['o'] == 1) { $max = 5; } elseif ($_GET['o'] == 2) { $max = 10; } else { $max = 15; }
do {
$loop = 1;
// maak de som
do {
// maak een random 1e getal
$firstnumber = rand(2, $max);
// random 2e getal
$secondnumber = rand(1, $max);
// trek het 2e van het 1e getal af
$uitkomst = $firstnumber - $secondnumber;
$loop++;
} while (($uitkomst <= 0 || in_array_r($uitkomst, $_SESSION['opdracht']) === true && $loop <= 100));
if ($loop == 100) { echo 'we hebben geen som kunnen maken'; exit; }
$som_toevoegen = (array("som" => $firstnumber. ' - '. $secondnumber , "uitkomst" => $uitkomst));
array_push ($_SESSION['opdracht'], $som_toevoegen);
} while (count($_SESSION['opdracht']) < 3);
?>
1.575 views