impekt Posted July 6, 2019 Share Posted July 6, 2019 Hello, I created a small simple script that generates a sequence of numbers and I would like to put a (hidden) list of numbers as the starting script, and I would like the script to detect if there is the same sequence of numbers than in the list, and if so, the script reset until it’s goodIt’s for my school, and I’m having trouble :) Quote Link to comment Share on other sites More sharing options...
Barand Posted July 6, 2019 Share Posted July 6, 2019 We are not going to do your assignment for you but, if you show us what you have so far, we can point you in the right direction. Quote Link to comment Share on other sites More sharing options...
impekt Posted July 7, 2019 Author Share Posted July 7, 2019 Yep, i have that : <?php $regularNumbers = 5; $bonusNumbers = 1; $regularNumbersMin = 1; $regularNumbersMax = 69; $bonusNumbersMin = 1; $bonusNumbersMax = 26; $bonusUniqueFromRegular = false; $results = array( 'regular_nums' => array(), 'bonus_nums' => array() ); foreach(range(1, $regularNumbers) as $i){ $randNum = mt_rand($regularNumbersMin, $regularNumbersMax); while(in_array($randNum, $results['regular_nums'])){ $randNum = mt_rand($regularNumbersMin, $regularNumbersMax); } array_push($results['regular_nums'], $randNum); } foreach(range(1, $bonusNumbers) as $i){ $randNum = mt_rand($bonusNumbersMin, $bonusNumbersMax); while(in_array($randNum, $results['bonus_nums']) || ($bonusUniqueFromRegular && in_array($randNum, $results['regular_nums']))){ $randNum = mt_rand($bonusNumbersMin, $bonusNumbersMax); } array_push($results['bonus_nums'], $randNum); } sort($results['regular_nums']); sort($results['bonus_nums']); echo 'Results: <br>'; echo implode(", ", $results['regular_nums']); echo '<br>'; echo 'Bonus: <br>'; echo implode(", ", $results['bonus_nums']); Quote Link to comment Share on other sites More sharing options...
ginerjm Posted July 7, 2019 Share Posted July 7, 2019 and what is the 'trouble'?? BTW - as a newbie you may not be aware but PHP is a case-sensitive language. That means that if you use a cap letter in a var name but then reference that var later on without the proper cap, you will not be referencing the same var. That can be a real problem with a long script when you can't figure out why something isn't quite right. I highly suggest that you NOT use mixed case names to avoid this problem. All lower case is so much easier to work with, IMHO. That and some underscores to break up longer var names. In your case I would use "bonus_numbers_min" and "bonus_numbers_max". Quote Link to comment Share on other sites More sharing options...
Barand Posted July 7, 2019 Share Posted July 7, 2019 OK, guessing this is a "lottery". Use array_intersect() to find matching numbers $results = [ 4, 36, 44, 55, 57 ]; $user = [ 3, 21, 44, 45, 55 ]; $matching = array_intersect($results, $user); Check echo '<pre>', print_r($matching, 1), '</pre>'; Array ( [2] => 44 [3] => 55 ) Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.