Simple PHP question – PHP

  php

Q(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.

A(Answer):

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

A(Answer):

<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

A(Answer):

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?

A(Answer):

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

A(Answer):

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.

A(Answer):

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

LEAVE A COMMENT