PHWinfo banniere

Titres
PORTAIL ANNUAIRE ARTICLES COMPARATEUR HÉBERGEURS DEVIS FORUMS RÉDUCTEUR D'URL
Précédent   PHWinfo > Autres forums > Forum Programmation & Conception > comp.lang.php > Simple PHP question
S'inscrire FAQ Membres Recherche Messages du jour Marquer les forums comme lus
Simple PHP question

Réponse
 
LinkBack Outils de la discussion
Vieux 24/04/2008, 12h00   #1
Ronald Raygun
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut 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<ImageInfo> theArray ;


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
will be much appreciated.
  Réponse avec citation
Vieux 24/04/2008, 12h13   #2
Rik Wasmus
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Simple PHP question

On Thu, 24 Apr 2008 13:00:33 +0200, Ronald Raygun <invalid@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<ImageInfo> theArray ;
>
>
> 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
> 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
  Réponse avec citation
Vieux 24/04/2008, 12h18   #3
Krustov
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Simple PHP question

<comp.lang.php>
<Ronald Raygun>
<Thu, 24 Apr 2008 12:00:33 +0100>
<5OydnZRZAJPm9Y3VnZ2dnUVZ8qGdnZ2d@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
  Réponse avec citation
Vieux 24/04/2008, 13h00   #4
Ronald Raygun
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Simple PHP question



Rik Wasmus wrote:

> On Thu, 24 Apr 2008 13:00:33 +0200, Ronald Raygun <invalid@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<ImageInfo> theArray ;
>>
>>
>> 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 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?
  Réponse avec citation
Vieux 24/04/2008, 13h15   #5
Rik Wasmus
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Simple PHP question

Ronald Raygun wrote:
> Rik Wasmus wrote:
>
>> On Thu, 24 Apr 2008 13:00:33 +0200, Ronald Raygun
>> <invalid@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<ImageInfo> theArray ;
>>>
>>>
>>> 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 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
  Réponse avec citation
Vieux 24/04/2008, 14h05   #6
Rob
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Simple PHP question

On Apr 24, 1:15pm, Rik Wasmus <luiheidsgoe...@hotmail.com> wrote:
> 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<ImageInfo> theArray ;

>
> >>> 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 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.
  Réponse avec citation
Vieux 24/04/2008, 16h33   #7
Twayne
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut 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<ImageInfo> theArray ;
>
>
> 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 will be much appreciated.


--
How to Post to more than one group:
http://en.wikipedia.org/wiki/Crossposting



  Réponse avec citation
Réponse


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +1. Il est actuellement 14h01.


Édité par : vBulletin® version 3.7.3
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0 RC5 Tous droits réservés.
Version française #16 par l'association vBulletin francophone
PHWinfo est un site Éducation Sans Frontières
Ad Management by RedTyger
©Tous droits réservés par les parties respectives
Page generated in 0,24847 seconds with 15 queries