-1

我有一个非常简单的数组,其中包含一个链接和链接标题。当我打印值时,由于某种原因缺少“第三个”值。我已经仔细检查以确保第三个值存在,它确实存在。我不明白发生了什么?任何建议都会很棒!!!

<?php

$resources = array(
    "$link" => "$link_name",
    "$link1" => "$link_name1",
    "$link2" => "$link_name2",
    "$link3" => "$link_name3",
    "$link4" => "$link_name4"
);

foreach ($resources as $resources_link => $resources_name) {
    echo "<a href=\"$resources_link\">$resources_name</a><br>";
}
?>

输出看起来像:(缺少第三个值)Link1 Link2 Link4 Link5

4

4 回答 4

2

我尝试了这段代码并且工作得很好:

<?php

$link = "www.google.com";
$link_name = "Google";

$link1 = "www.google1.com";
$link_name1 = "Google1";

$link2 = "www.google2.com";
$link_name2 = "Google2";

$link3 = "www.google.com3";
$link_name3 = "Google3";

$link4 = "www.google.com4";
$link_name4 = "Google4";

$resources = array("$link"=>"$link_name","$link1"=>"$link_name1","$link2"=>"$link_name2","$link3"=>"$link_name3","$link4"=>"$link_name4");
foreach ($resources as $resources_link => $resources_name) {

echo "<a href=\"$resources_link\">$resources_name</a><br>";
}
于 2012-04-15T14:54:44.307 回答
0

我怀疑 $link, $link_name, $link1, $link_name1, ... 的值有特殊的 HTML 字符。尝试将循环更改为:

foreach ($resources as $resources_link => $resources_name) {
    echo "<a href=\"" . htmlentities($resources_link) . "\">" . htmlentities($resources_name) . "</a><br>";
}

htmlentities() 将清理您的文本,因此它不会破坏任何 HTML 标签。

于 2012-04-18T14:39:29.230 回答
0

变量$link未定义,如果只是字符串,将双引号替换为单引号。喜欢:

<?php

$resources = array(
'$link'=>'$link_name','$link1'=>'$link_name1','$link2'=>'$link_name2','$link3'=>'$link_name3','$link4'=>'$link_name4');

foreach ($resources as $resources_link => $resources_name) {

echo "<a href=\'$resources_link\'>$resources_name</a><br>";
}
?>
于 2012-04-15T15:02:04.467 回答
0

我尝试了您的代码对其进行了一些修改,并且可以看到所有五个链接:

<?php

$resources = array(
"1"=>"A",
"2"=>"B",
"3"=>"C",
"4"=>"D",
"5"=>"E"
);

foreach ($resources as $resources_link => $resources_name) {

echo "<a href=\"$resources_link\">$resources_name</a><br>";
}

?>
于 2012-04-15T14:54:28.150 回答