469,953 Members | 2,463 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,953 developers. It's quick & easy.

Simple PHP question

I want to be able to randomly select the following from an array:

1). An image
2). A piece of text (name of tge image)
3). A piece of text (description of the image)
I want to be able to build a static array with the values hardcoded into
the array, and then be able to randomly select an item from the array
and retrieve the image, name and description.

I am new to PHP, but have been programming C/C++ for over 10 years.

In C++ it would look something like this:

class ImageInfo
{
public:
ImageInfo(const std::string& path, const std::string& name, const
std::string& descr);
ImageInfo(const ImageInfo&);
~ImageInfo();

std::string PathName() const ;
std::string Name() const ;
std::string Description() const ;

private:
std::string m_path, m_name, m_descr;
}

static std::vector<ImageInfotheArray ;
static const ImageInfo& getRandomImageInfo()
{
//generate a random number less than number of items in vector
size_t index = random_index(theArray.size());
return theArray[index];
}

I need to know how to translate this into PHP. I know PHP does not have
the equivalent of the STL, so I will have to use use arrays instead. Any
help will be much appreciated.
Jun 2 '08 #1
6 1517
On Thu, 24 Apr 2008 13:00:33 +0200, Ronald Raygun <in*****@domain.com
wrote:
I want to be able to randomly select the following from an array:

1). An image
2). A piece of text (name of tge image)
3). A piece of text (description of the image)
I want to be able to build a static array with the values hardcoded into
the array, and then be able to randomly select an item from the array
and retrieve the image, name and description.

I am new to PHP, but have been programming C/C++ for over 10 years.

In C++ it would look something like this:

class ImageInfo
{
public:
ImageInfo(const std::string& path, const std::string& name, const
std::string& descr);
ImageInfo(const ImageInfo&);
~ImageInfo();

std::string PathName() const ;
std::string Name() const ;
std::string Description() const ;

private:
std::string m_path, m_name, m_descr;
}

static std::vector<ImageInfotheArray ;
static const ImageInfo& getRandomImageInfo()
{
//generate a random number less than number of items in vector
size_t index = random_index(theArray.size());
return theArray[index];
}

I need to know how to translate this into PHP. I know PHP does not have
the equivalent of the STL, so I will have to use use arrays instead. Any
help will be much appreciated.
With arrays it sure is simple:

$images = array(
'possible_foo_identifier' =array('path' ='foo.jpg','name' ='foo',
'descr' ='foo descr.'),
'possible_bar_identifier' =array('path' ='bar.jpg','name' ='bar',
'descr' ='bar descr.'));
$chosen = $images[array_rand($images)];
var_dump($chosen);

If you don't want the identifiers, and just have a 0-indexed array, you
could also use:

$images = array(
array('path' ='foo.jpg','name' ='foo', 'descr' ='foo descr.'),
array('path' ='bar.jpg','name' ='bar', 'descr' ='bar descr.'));
$chosen = $images[rand(0,count($images)-1)];
var_dump($chosen);
If you want to use objects, look into SPL:
http://www.php.net/~helly/php/ext/sp...rayObject.html
--
Rik Wasmus
Jun 2 '08 #2
<comp.lang.php>
<Ronald Raygun>
<Thu, 24 Apr 2008 12:00:33 +0100>
<5O******************************@bt.com>
1). An image
2). A piece of text (name of tge image)
3). A piece of text (description of the image)
I want to be able to build a static array with the values hardcoded into
the array, and then be able to randomly select an item from the array
and retrieve the image, name and description.
Why not just select one item at random - and read in the details of that
one item .
--
www.krustov.co.uk
Jun 2 '08 #3


Rik Wasmus wrote:
On Thu, 24 Apr 2008 13:00:33 +0200, Ronald Raygun <in*****@domain.com>
wrote:
>I want to be able to randomly select the following from an array:

1). An image
2). A piece of text (name of tge image)
3). A piece of text (description of the image)
I want to be able to build a static array with the values hardcoded
into the array, and then be able to randomly select an item from the
array and retrieve the image, name and description.

I am new to PHP, but have been programming C/C++ for over 10 years.

In C++ it would look something like this:

class ImageInfo
{
public:
ImageInfo(const std::string& path, const std::string& name,
const std::string& descr);
ImageInfo(const ImageInfo&);
~ImageInfo();

std::string PathName() const ;
std::string Name() const ;
std::string Description() const ;

private:
std::string m_path, m_name, m_descr;
}

static std::vector<ImageInfotheArray ;
static const ImageInfo& getRandomImageInfo()
{
//generate a random number less than number of items in vector
size_t index = random_index(theArray.size());
return theArray[index];
}

I need to know how to translate this into PHP. I know PHP does not
have the equivalent of the STL, so I will have to use use arrays
instead. Any help will be much appreciated.


With arrays it sure is simple:

$images = array(
'possible_foo_identifier' =array('path' ='foo.jpg','name' =>
'foo', 'descr' ='foo descr.'),
'possible_bar_identifier' =array('path' ='bar.jpg','name' =>
'bar', 'descr' ='bar descr.'));
$chosen = $images[array_rand($images)];
var_dump($chosen);

If you don't want the identifiers, and just have a 0-indexed array, you
could also use:

$images = array(
array('path' ='foo.jpg','name' ='foo', 'descr' ='foo descr.'),
array('path' ='bar.jpg','name' ='bar', 'descr' ='bar descr.'));
$chosen = $images[rand(0,count($images)-1)];
var_dump($chosen);

Thanks Rik, thissi exactly what I was looking for. One last question
though - now that I have the randomly selected item, how do I retrieve
the particular 'fields' in the array - for example, how do I retrieve
the path and description from the chosen item?
Jun 2 '08 #4
Ronald Raygun wrote:
Rik Wasmus wrote:
>On Thu, 24 Apr 2008 13:00:33 +0200, Ronald Raygun
<in*****@domain.com wrote:
>>I want to be able to randomly select the following from an array:

1). An image
2). A piece of text (name of tge image)
3). A piece of text (description of the image)
I want to be able to build a static array with the values hardcoded
into the array, and then be able to randomly select an item from the
array and retrieve the image, name and description.

I am new to PHP, but have been programming C/C++ for over 10 years.

In C++ it would look something like this:

class ImageInfo
{
public:
ImageInfo(const std::string& path, const std::string& name,
const std::string& descr);
ImageInfo(const ImageInfo&);
~ImageInfo();

std::string PathName() const ;
std::string Name() const ;
std::string Description() const ;

private:
std::string m_path, m_name, m_descr;
}

static std::vector<ImageInfotheArray ;
static const ImageInfo& getRandomImageInfo()
{
//generate a random number less than number of items in vector
size_t index = random_index(theArray.size());
return theArray[index];
}

I need to know how to translate this into PHP. I know PHP does not
have the equivalent of the STL, so I will have to use use arrays
instead. Any help will be much appreciated.


With arrays it sure is simple:

$images = array(
'possible_foo_identifier' =array('path' ='foo.jpg','name' =>
'foo', 'descr' ='foo descr.'),
'possible_bar_identifier' =array('path' ='bar.jpg','name' =>
'bar', 'descr' ='bar descr.'));
$chosen = $images[array_rand($images)];
var_dump($chosen);

If you don't want the identifiers, and just have a 0-indexed array,
you could also use:

$images = array(
array('path' ='foo.jpg','name' ='foo', 'descr' ='foo descr.'),
array('path' ='bar.jpg','name' ='bar', 'descr' ='bar descr.'));
$chosen = $images[rand(0,count($images)-1)];
var_dump($chosen);


Thanks Rik, thissi exactly what I was looking for. One last question
though - now that I have the randomly selected item, how do I retrieve
the particular 'fields' in the array - for example, how do I retrieve
the path and description from the chosen item?
By $array['name of index'], so in this case for instance:
echo $chosen['path'];

For more array information/usage, see
<http://nl2.php.net/manual/en/language.types.array.php>. The PHP manual
is quite good (don't forget the user contributed notes), be sure to
refer to it often when familiarizing yourself with PHP.
--
Rik Wasmus
Jun 2 '08 #5
Rob
On Apr 24, 1:15*pm, Rik Wasmus <luiheidsgoe...@hotmail.comwrote:
Ronald Raygun wrote:
Rik Wasmus wrote:
On Thu, 24 Apr 2008 13:00:33 +0200, Ronald Raygun
<inva...@domain.com*wrote:
>I want to be able to randomly select the following from an array:
>1). An image
2). A piece of text (name of tge image)
3). A piece of text (description of the image)
>I want to be able to build a static array with the values hardcoded
into *the array, and then be able to randomly select an item from the
array *and retrieve the image, name and description.
>I am new to PHP, but have been programming C/C++ for over 10 years.
>In C++ it would look something like this:
>class ImageInfo
{
public:
* * *ImageInfo(const std::string& path, const std::string& name,
const *std::string& descr);
* * *ImageInfo(const ImageInfo&);
* * *~ImageInfo();
>* * *std::string PathName() const ;
* * *std::string Name() const ;
* * *std::string Description() const ;
>private:
* *std::string m_path, m_name, m_descr;
}
>static std::vector<ImageInfotheArray ;
>static const ImageInfo& getRandomImageInfo()
{
* * *//generate a random number less than number of items in vector
* * *size_t index = random_index(theArray.size());
* * *return theArray[index];
}
>I need to know how to translate this into PHP. I know PHP does not
have *the equivalent of the STL, so I will have to use use arrays
instead. Any *help will be much appreciated.
With arrays it sure is simple:
$images = array(
* * 'possible_foo_identifier' =array('path' ='foo.jpg','name' =>
'foo', *'descr' ='foo descr.'),
* * 'possible_bar_identifier' =array('path' ='bar.jpg','name' =>
'bar', *'descr' ='bar descr.'));
$chosen = $images[array_rand($images)];
var_dump($chosen);
If you don't want the identifiers, and just have a 0-indexed array,
you *could also use:
$images = array(
* * array('path' ='foo.jpg','name' ='foo', 'descr' ='foo descr.'),
* * array('path' ='bar.jpg','name' ='bar', 'descr' ='bar descr.'));
$chosen = $images[rand(0,count($images)-1)];
var_dump($chosen);
Thanks Rik, thissi exactly what I was looking for. One last question
though - now that I have the randomly selected item, how do I retrieve
the particular 'fields' in the array - for example, how do I retrieve
the path and description from the chosen item?

By $array['name of index'], so in this case for instance:
echo $chosen['path'];

For more array information/usage, see
<http://nl2.php.net/manual/en/language.types.array.php>. The PHP manual
is quite good (don't forget the user contributed notes), be sure to
refer to it often when familiarizing yourself with PHP.
--
Rik Wasmus- Hide quoted text -

- Show quoted text -
Ronald, just to add an extra bit to Rik's response, PHP has a useful
array walking function called foreach(), which you could use like this
(untested) :-

foreach ($list_of_objects[$selected_index] as $key =$value) {
echo "The value of $key is $value \n";
$$key = $value; // Equivilent to saying $Pathname = "xxxx",
$Description = "yyyyy", etc, etc
}

Rob.
Jun 2 '08 #6
I want to be able to randomly select the following from an array:
>
1). An image
2). A piece of text (name of tge image)
3). A piece of text (description of the image)
I want to be able to build a static array with the values hardcoded
into the array, and then be able to randomly select an item from the
array and retrieve the image, name and description.

I am new to PHP, but have been programming C/C++ for over 10 years.

In C++ it would look something like this:

class ImageInfo
{
public:
ImageInfo(const std::string& path, const std::string& name, const
std::string& descr);
ImageInfo(const ImageInfo&);
~ImageInfo();

std::string PathName() const ;
std::string Name() const ;
std::string Description() const ;

private:
std::string m_path, m_name, m_descr;
}

static std::vector<ImageInfotheArray ;
static const ImageInfo& getRandomImageInfo()
{
//generate a random number less than number of items in vector
size_t index = random_index(theArray.size());
return theArray[index];
}

I need to know how to translate this into PHP. I know PHP does not
have the equivalent of the STL, so I will have to use use arrays
instead. Any help will be much appreciated.
--
How to Post to more than one group:
http://en.wikipedia.org/wiki/Crossposting

Jun 2 '08 #7

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

3 posts views Thread by Patchwork | last post: by
1 post views Thread by Proteus | last post: by
2 posts views Thread by Raskolnikow | last post: by
3 posts views Thread by Peter | last post: by
7 posts views Thread by abcd | last post: by
14 posts views Thread by Giancarlo Berenz | last post: by
30 posts views Thread by galiorenye | last post: by
10 posts views Thread by Phillip Taylor | last post: by
17 posts views Thread by Chris M. Thomasson | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.