webForumDet fria alternativet

Loopa igenom array?

7 svar · 311 visningar · startad av m_soderlund

m_soderlundMedlem sedan sep. 20026 425 inlägg
#1

Jag har följande array med info till en meny.
Nu är det så att jag skulle vilja loopa igenom den och för varje array skriva
så här, exempel:

<a href="index.php?menu_var=st&main_var=start">Start</a>
<br /><a href="index.php?menu_var=st&main_var=contact">Contact</a>

och så vidare. Hur loopar jag igenom arrayen?

<?php

/**
* 
* @version $Id$
* @copyright 2003
*/
// BEGIN MENU_TEXT DEFINTION
// START
$menu_text['st-start'] 							 = 'Start';
$menu_text['st-contact']                         = 'Contact';
$menu_text['st-how']                             = 'How it works';
$menu_text['st-faq']                             = 'FAQ';
// JOIN
$menu_text['jo-joinform'] 						 = 'Join us!';
$menu_text['jo-agreement']                       = 'Terms & Conditions';
$menu_text['jo-privacy']                         = 'Privacy policy';
$menu_text['jo-antispam']                        = 'Anti-spam policy';
// MEMBERS
$menu_text['me-loginform'] 						 = 'Login';
$menu_text['me-logout']                          = 'Logout';
$menu_text['me-stats']                           = 'Statistics';
$menu_text['me-news']                            = 'News';
$menu_text['me-download']                        = 'Download Surfbar';
$menu_text['me-updateform']                      = 'Update profile';
$menu_text['me-forgotuserinfoform']              = 'Lost password?';
$menu_text['me-referralcenter']                  = 'Referral-tips';
$menu_text['me-help']                            = 'Help';
$menu_text['me-banners']                         = 'Banners';
$menu_text['me-history']                         = 'History';
$menu_text['me-deals']                           = 'Special deals';
$menu_text['me-deleteform']                      = 'Cancel account';
// ADVERTISING
$menu_text['ad-info'] 							 = 'Info';
$menu_text['ad-loginform']                       = 'Login';
$menu_text['ad-stats']                           = 'Statistics';
$menu_text['ad-updateform']                      = 'Update campaign';
$menu_text['ad-buyadvertising']                  = 'Buy advertising';
$menu_text['ad-benefits']                        = 'Benefits';
$menu_text['ad-pricing']                         = 'Pricing';
$menu_text['ad-buybanners_agreement']            = 'Advertising agreement';

?>

Tacksam för svar!

monAmourMedlem sedan dec. 2002258 inlägg
#2

Du borde nog dela upp arrayerna i två stycken..

$array1[0] = "linkvalue"; och $array2[0] = "linktextvalue";

Då kand u enkelt loopa så här:

if (count($array1)==count($array2)) {
$total = count($array1);
for ($i=0; $i<$total; $i++) {
  echo("<a href=\"sida.php?str=". $array1[$i] ."\">". $array2[$i] ."</a>\n");
}

Hajjar du?

m_soderlundMedlem sedan sep. 20026 425 inlägg
#3

Jo, tack. Men går det inte att använda motsvarigheten till ASPs Split() i PHP?

monAmourMedlem sedan dec. 2002258 inlägg
#4

Jo det fungerar, men då måste du ha värdena i samma variabel.
Du har ju bara ett värde nu och ett array index.
Så här kan vara en variant:

$menu_text[0][0]="me-loginform";
$menu_text[0][1]="Login";
$menu_text[1][0]="st-start";
$menu_text[1][1]="Start";

Sen kan du loopa igenom...
Här kan du ju också använda en assosiativ array om du skulle vilja.

m_soderlundMedlem sedan sep. 20026 425 inlägg
#5

..Och hur loopar man igenom en sådan array? Jag är ganska dålig på PHP, kan bara några få grunder. :(

monAmourMedlem sedan dec. 2002258 inlägg
#6
$menu_text[0][0]="me-loginform"; $menu_text[0][1]="Login"; 
$menu_text[1][0]="st-start"; $menu_text[1][1]="Start"; 

if (is_array($menu_text)) {
if (count($menu_text)!=0) {
  $arrTotal = count($menu_text);
    for ($i=0; $i<$arrTotal; $i++) {
      echo(<a href=\"sida.php?str=". $menu_text[$i][0] ."\">". $menu_text[$i][1] ."</a>\n");
    }
  } else {
    echo("Inga menyobjekt!\n");
}
  echo("Objektet är ingen array!\n");
}

Borde fungera!

MatteMedlem sedan aug. 20002 975 inlägg
#7

Annars om man återgår till den ursprungliga arrayen så borde det gå att skriva så här:

$menu_text['st-start'] 						  = 'Start';
.
.
.
$menu_text['ad-buybanners_agreement']            = 'Advertising agreement';

foreach($menu_text as $key => $val) {
   $menu_var = substr($key, 0, 2);
   $main_var = substr($key, 3);
   echo "<a href=\"index.php?menu_var=$menu_var&main_var=$main_var\">$val</a><br>\n";
}
m_soderlundMedlem sedan sep. 20026 425 inlägg
#8

Tackar tackar, ska testa sedan. Tack!

133 ms totalt · 3 externa anrop · v20260731065814-full.91fd2ad2
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)