RE: [PHP] Stuck on array, need a little help.
| From: | Brian V Bonini | Date: | Tue, 04 Dec 2001 15:16:07 +0000 |
| Subject: | RE: [PHP] Stuck on array, need a little help. | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-76528@lists.php.net to get a copy of this message | ||
I still can't get this to do what I want:
$bikes = array(
"Road" => array(
"Trek" => array(
"Trek 5200" => "road.php?brand=t5200"
),
"LeMond" => array(
"Zurich" => "road.php?brand=zurich",
"Chambery" => "road.php?brand=chambery",
"Alpe d'Huez" => "road.php?brand=alpe",
"BuenosAries" => "road.php?brand=bueno",
"Tourmalet" => "road.php?brand=tourmalet"
),
"Moots" => array(
"VaMoots" => "road.php?brand=vamoots"
)
),
);
if ($cat == 'bikes') {
while (list($key, $val)=each($bikes[$sub_cat])) {
echo "<TD><IMG SRC=\"images/spacer.gif\" WIDTH=\"25\"
HEIGHT=\"1\"
ALT=\"\" BORDER=\"0\"></TD>\n";
echo "<TD><A HREF=\"$val\"
CLASS=\"menu\">$key</A></TD>\n";
while (list($sub_key, $sub_val) = each($val)) {
echo "<TD><A HREF=\"$sub_val\"
CLASS=\"menu\">$sub_key</a></td>\n";
}
}
}
Will produce:
Trek Trek 5200 LeMond Zurich Chambery Alpe d'Huez BuenosAries Tourmalet
Moots VaMoots
as it should...
But, I need it to produce:
Trek LeMond Moots
Trek 5200 Zurich Chambery Alpe d'Huez BuenosAries Tourmalet VaMoots
And I need to get the value of $sub_val in the nested "while" loop to where
$val is in the outer loop.
I'm really stuck, any suggestions??
-Brian
**************
> -----Original Message-----
> From: Jim Musil [mailto:jim@nettmedia.com]
> Sent: Friday, November 30, 2001 5:26 PM
> To: b-bonini@home.com
> Cc: php-general@lists.php.net
> Subject: RE: [PHP] Stuck on array, need a little help.
>
>
>
>
> The script is still working right, you just need to nest another
> while loop into your current while loop.
>
> Like so ...
>
> if ($cat == 'bikes' && $sub_cat != 'Road') {
> while (list($val, $key)=each($bikes[$sub_cat])) {
>
> echo "<tr><td>$val</td>";
>
> while (list($sub_val, $sub_key) = each($key)) {
>
>
> echo "<TD><IMG SRC=\"images/spacer.gif\"
> WIDTH=\"25\"
> HEIGHT=\"1\"
> ALT=\"\" BORDER=\"0\"></td>\n";
> echo "<TD><A HREF=\"$sub_key\"
> CLASS=\"menu\">$sub_val</a></td>\n";
>
>
> }
> }
> }
>
> alternatively, if you know specifically what you want you could
> do this ...
>
> if ($cat == 'bikes' && $sub_cat != 'Road') {
> while (list($val, $key)=each($bikes[$sub_cat]["Trek"])) {
>
>
>
> echo "<TD><IMG SRC=\"images/spacer.gif\"
> WIDTH=\"25\"
> HEIGHT=\"1\"
> ALT=\"\" BORDER=\"0\"></td>\n";
> echo "<TD><A HREF=\"$key\"
> CLASS=\"menu\">$val</a></td>\n";
>
>
>
> }
> }
>
>
>
> >No, all that will do is reverse the placement
> >of the values. So now it prints out Array
> >and puts the item in the URL. Still the same problem.
> >
> >
> >> -----Original Message-----
> >> From: Jim Musil [mailto:jim@nettmedia.com]
> >> Sent: Friday, November 30, 2001 4:54 PM
> >> To: b-bonini@home.com
> >> Cc: php-general@lists.php.net
> >> Subject: Re: [PHP] Stuck on array, need a little help.
> >>
> >>
> >> Your script is working like you are asking it to ...
> >>
> >>
> >> Change ...
> >>
> >> while (list($val, $key)=each($bikes[$sub_cat])) {
> >>
> >> To ...
> >>
> >> while (list($key, $val)=each($bikes[$sub_cat])) {
> >>
> >> and it should work like you WANT it to ...
> >>
> >> >I'm stuck. $key returns "Array" how can I get at each
> >> >level of this array?
> >> >
> >> >if ($cat == 'bikes' && $sub_cat != 'Road') {
> >> > while (list($val, $key)=each($bikes[$sub_cat])) {
> >> > echo "<TD><IMG SRC=\"images/spacer.gif\"
> >> > WIDTH=\"25\"
> >> HEIGHT=\"1\"
> >> >ALT=\"\" BORDER=\"0\"></TD>\n";
> >> > echo "<TD><A HREF=\"$key\"
> >> > CLASS=\"menu\">$val</A></TD>\n";
> >> >
> >> >$bikes = array(
> >> > "Road" => array(
> >> > "Trek" => array(
> >> > "Trek 5200" => "road.php?brand=t5200"
> >> > ),
> >> > "LeMond" => array(
> >> > "Zurich" => "road.php?brand=zurich",
> >> > "Chambery" =>
> >> > "road.php?brand=chambery",
> >> > "Alpe d'Huez" =>
> >> > "road.php?brand=alpe",
> >> > "BuenosAries" =>
> >> > "road.php?brand=bueno",
> >> > "Tourmalet" =>
> >> > "road.php?brand=tourmalet"
> >> > ),
> >> > "Moots" => array(
> >> > "VaMoots" =>
> >> > "road.php?brand=vamoots"
> >> > )
> >> > ),
> >> > "Mountain" => array(
> >> > "Trek" => array(
> >> > "Fuel 100" =>
> >> > "mountain.php?brand=tfuel90",
> >> > "Fuel 90" =>
> >> > "mountain.php?brand=schhg"
> >> > ),
> >> > "Klein" => array(
> >> > "bike 1" => "URL",
> >> > "bike 2" => "URL"
> >> > ),
> >> > "Gary Fisher" => array(
> >> > "bike 1" => "URL",
> >> > "bike 2" => "URL"
> >> > ),
> >> > "Moots" => array(
> >> > "bike 1" => "URL",
> >> > "bike 2" => "URL"
> >> > )
> >> > ),
> >> >
> >> >
> >> >--
> >> >PHP General Mailing List (http://www.php.net/)
> >> >To unsubscribe, e-mail: php-general-unsubscribe@lists.php.net
> >> >For additional commands, e-mail: php-general-help@lists.php.net
> >> >To contact the list administrators, e-mail:
> php-list-admin@lists.php.net
> >>
> >>
> >> --
> >> Jim Musil
> >> ---------
> >> Multimedia Programmer
> >> Nettmedia
> >> -------------
> >> 212-629-0004
> >> jim@nettmedia.com
> >>
> >> --
> >> PHP General Mailing List (http://www.php.net/)
> >> To unsubscribe, e-mail: php-general-unsubscribe@lists.php.net
> >> For additional commands, e-mail: php-general-help@lists.php.net
> >> To contact the list administrators, e-mail:
> php-list-admin@lists.php.net
> >>
> >
> >--
> >PHP General Mailing List (http://www.php.net/)
> >To unsubscribe, e-mail: php-general-unsubscribe@lists.php.net
> >For additional commands, e-mail: php-general-help@lists.php.net
> >To contact the list administrators, e-mail: php-list-admin@lists.php.net
>
>
> --
> Jim Musil
> ---------
> Multimedia Programmer
> Nettmedia
> -------------
> 212-629-0004
> jim@nettmedia.com
>