RE: [PHP] Stuck on array, need a little help.
| From: | Brian V Bonini | Date: | Tue, 04 Dec 2001 20:39:44 +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-76589@lists.php.net to get a copy of this message | ||
Probably, unfortunately I'm working with PHP 3.x
and don't have a choice about it so I do not have
"foreach".
> -----Original Message-----
> From: Steve Cayford [mailto:steve_cayford@unioncab.com]
> Sent: Tuesday, December 04, 2001 12:37 PM
> To: b-bonini@home.com
> Cc: php-general@lists.php.net
> Subject: Fwd: [PHP] Stuck on array, need a little help.
>
>
> Hmm. Mail didn't go through, trying again...
>
> Begin forwarded message:
>
> >
> > On Tuesday, December 4, 2001, at 09:16 AM, Brian V Bonini wrote:
> >
> >> 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";
> >
> > (isn't $val here an array of bike models? If so you'll end up with <A
> > HREF="[Array]" ...>)
> >
> >> while (list($sub_key, $sub_val) = each($val)) {
> >> echo "<TD><A HREF=\"$sub_val\"
> >> CLASS=\"menu\">$sub_key</a></td>\n";
> >> }
> >> }
> >> }
> >>
> > Are you looking for something more like this:
> >
> > $modelString = "";
> > $makeString = "";
> > foreach($bikes['Road'] as $make => $models) {
> > $makeString .= " " . $make;
> > foreach($models as $model => $link) {
> > $modelString .= "<A HREF=\"$link\"
> CLASS=\"menu\">$model</A>";
> > }
> > }
> > print($makeString . "<br>\n");
> > print($modelString . "<br>\n");
> >
> > (I don't get what you're trying to do with the table, though)
> >
> > -Steve
> >
> >
> >> 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
> >>>
> >>
> >>
> >> --
> >> 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
>
>