生成与数组的链接

时间:2014-09-23 21:50:15

标签: php arrays

我想使用两个数组生成一个链接:第一个包含地址;第二个包含文本 我想要:

 - <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>

3 个答案:

答案 0 :(得分: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>";
}

答案 1 :(得分: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);

答案 2 :(得分: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;
   }

}