2014-09-23 58 views
0

我想要使用兩個數組生成鏈接:第一個包含地址;第二個包含文本。
我想有:與數組生成鏈接

- <a href="address1">text3</a> 
- <a href="address2">text3</a> 
- <a href="address3">text3</a> 

這樣做,我想是這樣,但我不能生成的文本。

<ul> 
      <?php 
isset($_GET["page"]) ? $page=$_GET["page"] : $page="home"; 
$vocimenu=array("address1","address2","address3"); 
$nomimenu=array("text1","text2","text3"); 
$nome=array_values($nomimenu); 
foreach($vocimenu as $voce) { 
    echo "<li>"; 
    if($page!=$voce) echo '<a href="?page='.$voce.'">'; 
    echo $nome; 
    if($page!=$voce) echo "</a>"; 
    echo "</li>"; 
} 
?> 
     </ul> 
+0

使用了()代替的foreach() – augusto 2014-09-23 21:58:18

回答

0

你可以用一個陣列

isset($_GET["page"]) ? $page=$_GET["page"] : $page="home"; 
$links=array("address1"=>"text1","address2"=>"text2","address3"=>"text3"); 

foreach($links as $href=>$text){ 
    if($page!=$voce){ 
     echo '<a href="?page='.$href.'">'.$text.'</a>'; 
    }else{ 
     echo $text; 
    } 

} 
+0

這個更好!謝謝大家! – Shika93 2014-09-23 22:19:38

0

這應該工作:

isset($_GET["page"]) ? $page=$_GET["page"] : $page="home"; 
$vocimenu=array("address1","address2","address3"); 
$nomimenu=array("text1","text2","text3"); 

//since you're using two arrays, foreach is not the way to go 
//you need a counter so you can get elements from each array 
for ($i=0;$i<count($vocimenu);$i++) { 
    echo "<li>"; 
    if($page!=$voce) echo '<a href="?page='.$vocimenu[$i].'">'; 
    echo $nomimenu[$i]; 
    if($page!=$voce) echo "</a>"; 
    echo "</li>"; 
} 

另一種選擇是像這樣做,但是,可以使你的一些其他代碼欠靈活:

$array = array("address1"=>"value1","address2"=>"value2",...); 
foreach($array as $address=>$value){ 
    echo "<li>"; 
    if($page!=$voce) echo '<a href="?page='.$address.'">'; 
    echo $value; 
    if($page!=$voce) echo "</a>"; 
    echo "</li>"; 
} 
+0

感謝你們倆!我知道我需要一個櫃檯,但我無法做到。 – Shika93 2014-09-23 22:11:12

0

這將是如果您創建關聯數組會更容易:

$menu = array(
    "fmp_trama" => "Full Metal Panic!", 
    "fumoffu_trama" => "Full Metal Panic? Fumoffu", 
    "fmp_tsr" => "Full Metal Panic! TSR" 
); 

echo '<ul>'; 
foreach ($menu as $key => $value) { 
    echo "<li>"; 
    if($page != $key) { 
     echo sprintf('<a href="?page=%s">%s</a>', $key, $value); 
    } 
    else { 
     echo sprintf('<span>%s</span>', $value); 
    } 
    echo "</li>"; 
} 
echo '</ul>'; 

你可以建立這樣的陣列:(如果你一定要在2陣列結構)

$menu = array_combine($vocimenu, $nomimenu); 
+0

非常感謝!像這樣容易得多。可讀性強。 – Shika93 2014-09-23 22:12:11