Re: Stuck on array, need a little help.
| From: | Steve Cayford | Date: | Tue, 04 Dec 2001 16:27:52 +0000 |
| Subject: | Re: Stuck on array, need a little help. | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-76538@lists.php.net to get a copy of this 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((isn't $val here an array of bike models? If so you'll end up with <A HREF="[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";
$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) -Stevewhile (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:
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') {-- 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.netwhile (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.php-list-admin@lists.php.net-----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') {HEIGHT=\"1\"while (list($val, $key)=each($bikes[$sub_cat])) { echo "<TD><IMG SRC=\"images/spacer.gif\" WIDTH=\"25\"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:-- 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