Re: Stuck on array, need a little help.

From: 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(
     "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


« previous php.general (#76538) next »