PHP语法错误?-创建一个多维数组,使用foreach循环输出HTML


PHP Syntax Error? - Create a MultiDimentional Array, Use a foreach loop - output HTML

回答的问题:

在处理了一些事情之后,我最后一个数组元素的和处的逗号的组合,以及没有正确键入图像源路径是问题所在。

一切都很好。一个简单的语法错误会让一切变得不正常,这让我一直感到惊讶。

谢谢乔纳森和特西蒙特!你的答案组合解决了我的问题。

是时候得到一个好的PHP调试器了,可能是Netbeans,因为Dreamweaver不适合我,而且我还不够熟练,无法编写代码!

编辑:

我将通过展示我的输出来源:来让自己变得更加清晰

<body>
<div id="main">
<div class="container">
<div class="sponsorInner">
<a href="'.$company[1].'">
<img src="img/sponsors/'.$company[0].'.png">
</a>
</div>
</div>
'; } ?&gt;
</div>
</body>

3件事不起作用:我需要第一个div和类gold来渲染,需要数组中的$来填充图像链接和路径。

原始问题:我试图在一个页面上创建多个div排列,使用多维数组和foreach循环,用相对路径文件夹中以记忆方式命名的图像填充div内容,并将图像作为超链接。

我的输出没有正确显示第一个,也没有填充数组$。

这对我来说似乎是正确的,我是否缺少某种类型的转义或语法?

    <body>
    <?php   
        $sponsor = array(
            array('Allstate','http://www.allstateagencies.com/'),
            array('Arrowhead','http://www.arrowheadwater.com/'),
        );
    ?>  
<div id="main">
    <div class="container">     
        <?php           
            foreach($sponsor as $company)
            {
                echo '
                    <div class="gold">
                        <div class="sponsorInner">
                            <a href="'.$company[1].'"><img src="img/sponsors/'.$company[0].'.png"/></a>
                        </div>
                    </div>
                ';
            }
        ?>

    </div><!--.container-->
</div><!--#main-->
</body>

完全猜测。。既然这就是我对你提问的方式所能做的。。。但是,如果您的问题是图像输出,请尝试在图像的src属性开头加一个"/":

  <a href="'.$company[1].'"><img src="/img/sponsors/'.$company[0].'.png"/></a>

通过这种方式,浏览器从网站的底部查找img目录,而不是从您所在的任何子目录中查找。

为什么不这样做你的阵列

$sponsor = array(
  'Allstate' => 'http://www.allstateagencies.com/',
  'Arrowhead' => 'http://www.arrowheadwater.com/'
);

以及后来的

<?php
foreach($sponsor as $company_name => $company_site)
{
?>
  <div class="gold">
    <div class="sponsorInner">
      <a href="<?php echo $company_site ?>"><img src="img/sponsors/<?php echo $company_name ?>.png"/></a>
    </div>
  </div>
<?php
}
?>

编辑

请记住,您的文件名区分大小写。因此.png需要在其名称中使用大写字母。如果需要小写字母,可以在$company_name周围添加strtolower()

这一行的末尾有一个逗号,您不需要:

array('Arrowhead','http://www.arrowheadwater.com/'),

请在发布之前尝试进行基本调试。