Connecting Tech Pros Worldwide Forums | Help | Site Map

Simple PHP question

Ronald Raygun
Guest
 
Posts: n/a
#2: Jun 2 '08

re: 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.

Krustov
Guest
 
Posts: n/a
#1: Jun 2 '08
<comp.lang.php>
<Ronald Raygun>
<Thu, 24 Apr 2008 12:00:33 +0100>
<5OydnZRZAJPm9Y3VnZ2dnUVZ8qGdnZ2d@bt.com>
Quote:
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
Rik Wasmus
Guest
 
Posts: n/a
#3: Jun 2 '08

re: Simple PHP question


On Thu, 24 Apr 2008 13:00:33 +0200, Ronald Raygun <invalid@domain.com
wrote:
Quote:
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
Ronald Raygun
Guest
 
Posts: n/a
#4: Jun 2 '08

re: Simple PHP question




Rik Wasmus wrote:
Quote:
On Thu, 24 Apr 2008 13:00:33 +0200, Ronald Raygun <invalid@domain.com>
wrote:
>
Quote:
>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?
Rik Wasmus
Guest
 
Posts: n/a
#5: Jun 2 '08

re: Simple PHP question


Ronald Raygun wrote:
Quote:
Rik Wasmus wrote:
>
Quote:
>On Thu, 24 Apr 2008 13:00:33 +0200, Ronald Raygun
><invalid@domain.com wrote:
>>
Quote:
>>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
Rob
Guest
 
Posts: n/a
#6: Jun 2 '08

re: Simple PHP question


On Apr 24, 1:15*pm, Rik Wasmus <luiheidsgoe...@hotmail.comwrote:
Quote:
Ronald Raygun wrote:
Quote:
Rik Wasmus wrote:
>
Quote:
Quote:
On Thu, 24 Apr 2008 13:00:33 +0200, Ronald Raygun
<inva...@domain.com*wrote:
>
Quote:
Quote:
>I want to be able to randomly select the following from an array:
>
Quote:
Quote:
>1). An image
>2). A piece of text (name of tge image)
>3). A piece of text (description of the image)
>
Quote:
Quote:
>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.
>
Quote:
Quote:
>I am new to PHP, but have been programming C/C++ for over 10 years.
>
Quote:
Quote:
>In C++ it would look something like this:
>
Quote:
Quote:
>class ImageInfo
>{
>public:
>* * *ImageInfo(const std::string& path, const std::string& name,
>const *std::string& descr);
>* * *ImageInfo(const ImageInfo&);
>* * *~ImageInfo();
>
Quote:
Quote:
>* * *std::string PathName() const ;
>* * *std::string Name() const ;
>* * *std::string Description() const ;
>
Quote:
Quote:
>private:
>* *std::string m_path, m_name, m_descr;
>}
>
Quote:
Quote:
>static std::vector<ImageInfotheArray ;
>
Quote:
Quote:
>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];
>}
>
Quote:
Quote:
>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.
>
Quote:
Quote:
With arrays it sure is simple:
>
Quote:
Quote:
$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);
>
Quote:
Quote:
If you don't want the identifiers, and just have a 0-indexed array,
you *could also use:
>
Quote:
Quote:
$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);
>
Quote:
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.
Twayne
Guest
 
Posts: n/a
#7: Jun 2 '08

re: Simple PHP question


I want to be able to randomly select the following from an array:
Quote:
>
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



Closed Thread