FUDforum
Fast Uncompromising Discussions. FUDforum will get your users talking.

Home » Imported messages » comp.lang.php » Need help accessing the key array.
Show: Today's Messages :: Polls :: Message Navigator
Return to the default flat view Create a new topic Submit Reply
Re: Need help accessing the key array. [message #185417 is a reply to message #185412] Sun, 30 March 2014 01:08 Go to previous messageGo to previous message
Denis McMahon is currently offline  Denis McMahon
Messages: 634
Registered: September 2010
Karma:
Senior Member
On Sat, 29 Mar 2014 13:49:37 -0700, Kongthap Thammachat wrote:

> <?php
>
> $rates = array(
> array("animal" => 0, "color" => 0, "rate" => 5), array("animal"
=> 0,
> "color" => 1, "rate" => 10),
> array("animal" => 0, "color" => 2, "rate" => 15),
> array("animal" => 1, "color" => 0, "rate" => 20),
> array("animal" => 1, "color" => 1, "rate" => 25),
> array("animal" => 1, "color" => 2, "rate" => 30),
> array("animal" => 2, "color" => 0, "rate" => 35),
> array("animal" => 2, "color" => 1, "rate" => 40),
> array("animal" => 2, "color" => 2, "rate" => 45),
> array("animal" => 3, "color" => 0, "rate" => 50),
> array("animal" => 3, "color" => 1, "rate" => 55),
> array("animal" => 3, "color" => 2, "rate" => 60)
> );
>
> $input_animal = 1;
> $input_color = 2;
>
> ?>
>
> How to access the $rates array to echo the associated rate of "animal"
> => 1 and "color" => 2 ? (which is 30), should i re-designed the $rates
> array?
>
> Thanks

If you're trying to find the rate for the input animal and colour values,
you're going to have to walk through all the members of rates, comparing
their animal and colour elements with the input values:

foreach ( $rates as $key => $value ) {
if ( $value["animal"] == $input_animal && $value["color"] == "$input_color
) {
break;
} }

echo "key into rates is: {$key}\n";
echo "rate = {$rates[$key]["rate"]}\n";
echo "rate also = {$value["rate"]}\n";

An alternative data structure might be:

$rates = array(
0=>array(0=>5,1=>10,2=>15),
1=>array(0=>20,1=>25,2=>30),
2=>array(0=>35,1=>40,2=>45),
3=>array(0=>50,1=>55,2=>60)
);

echo "rate = = {$rates[$input_animal][$input_color]}\n";

But whether that is better or not that will depend on what you're
actually trying to do.

--
Denis McMahon, denismfmcmahon(at)gmail(dot)com
[Message index]
 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: Most secure way to reset a password via email link
Next Topic: Strange but true! Working with interfaces in PHP
Goto Forum:
  

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ]

Current Time: Sat May 18 17:07:44 GMT 2024

Total time taken to generate the page: 0.05008 seconds