Solved

Generate Random Number

Posted on 2004-09-24
6
238 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
  • 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 500 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
Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

 
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

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
comma true 6 37
website maintenance mode 1 25
what do I need to host my own web sites? 13 50
PHP Mail error 3 26
Author Note: Since this E-E article was originally written, years ago, formal testing has come into common use in the world of PHP.  PHPUnit (http://en.wikipedia.org/wiki/PHPUnit) and similar technologies have enjoyed wide adoption, making it possib…
3 proven steps to speed up Magento powered sites. The article focus is on optimizing time to first byte (TTFB), full page caching and configuring server for optimal performance.
Learn how to match and substitute tagged data using PHP regular expressions. Demonstrated on Windows 7, but also applies to other operating systems. Demonstrated technique applies to PHP (all versions) and Firefox, but very similar techniques will w…
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.

840 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