Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

Generate Random Number

Posted on 2004-09-24
6
Medium Priority
?
244 Views
Last Modified: 2008-03-03
Hi All,
I'm using a news script called 'Cutenews' and within this script I can setup different news sections and each of these gets a number 1,2,3,4 etc. To display a news section on my web page I just drop in a piece of php with the appropriate news section number. This works great but I want to change it slightly. I want the news sections to appear randomly
i.e. instead of a variable
$section = 3
I want
$section = a_random_number

I know how to generate a random number between 1-10, 1-20 etc but what I want to know is how to generate a random number from a list of given numbers e.g. if I have the numbers 1,3,4,6,8,9,10,12,15,18, how can I select one of these randomly?

Hope this is clear and many thanks in advance

Michael

0
Comment
Question by:daleoran
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 2
6 Comments
 
LVL 45

Expert Comment

by:sunnycoder
ID: 12141965
Hi daleoran,

Have count of number of elements in the list. Generate a number in the range of 1 to count. Pick the counth element for display

Sunnycoder
0
 
LVL 27

Accepted Solution

by:
Diablo84 earned 2000 total points
ID: 12142016
Use the rand function

example - random number between 1 and 10

$var = rand(1,10);
echo $var;

To get a random number out of a list you would be best advised to put the numbers in an array and select a random array index.

eg.

$numbers = array(1,3,4,6,8,9,10,12,15,18);
$random = $numbers[rand(0,count($numbers)-1)];
echo $random;
0
 
LVL 27

Expert Comment

by:Diablo84
ID: 12142022
you could also just shuffle the array and return the first array item, eg:

$numbers = array(1,3,4,6,8,9,10,12,15,18);
shuffle($numbers);
echo $numbers[0];
0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 45

Expert Comment

by:sunnycoder
ID: 12142037
Slight correction


Have count of number of elements in the list. Generate a number in the range of 1 to count.
>Pick the counth element for display

I meant
Pick the randomly generated index number for display
0
 
LVL 10

Author Comment

by:daleoran
ID: 12142546
Many thanks for the prompt replies. Unfortunately I can't try these out until I get home this evening so please be patient

Michael

0
 
LVL 27

Expert Comment

by:Diablo84
ID: 12144897
No problem Michael, if you need any more information later please feel free to post back.
0

Featured Post

[Webinar] Lessons on Recovering from Petya

Skyport is working hard to help customers recover from recent attacks, like the Petya worm. This work has brought to light some important lessons. New malware attacks like this can take down your entire environment. Learn from others mistakes on how to prevent Petya like worms.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction This article is intended for those who are new to PHP error handling (https://www.experts-exchange.com/articles/11769/And-by-the-way-I-am-New-to-PHP.html).  It addresses one of the most common problems that plague beginning PHP develop…
Many old projects have bad code, but the budget doesn't exist to rewrite the codebase. You can update this code to be safer by introducing contemporary input validation, sanitation, and safer database queries.
The viewer will learn how to dynamically set the form action using jQuery.
This tutorial will teach you the core code needed to finalize the addition of a watermark to your image. The viewer will use a small PHP class to learn and create a watermark.
Suggested Courses

604 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question