2012-03-01 152 views
1

我想我只是有无效的语法,但对于我的生活我无法弄清楚。我有一个3个元素的嵌套数组。数组没有返回整个元素

$screenshot = array(array(Carousel => "Library.png", Caption => "Long caption for the library goes here", ListItem => "The Library")); 

我使用for循环来编写一些包含元素的HTML。

<?php 
     for ($row = 0; $row < 4; $row++) 
     { 
      echo "<div class=\"feature-title\"><a href=" . $carousel_dir . $screenshot[$row]["Carousel"] . " title=" . $screenshot[$row]["Caption"] . " rel=\"lightbox[list]\">" . $screenshot[$row]["ListItem"] . "</a></div>"; 
     }   
     ?> 

我的问题是“a”标签的“title”部分只包含第一个单词Long。所以在上面的情况下,它将是:

<div class="feature-title"><a href="/images_carousel/1A-Library.png" title="Long" caption for the library goes here rel="lightbox[list]" class="cboxElement">The Library</a></div> 

任何人都可以阐明我的错误吗?提前致谢。

回答

1

你忘记了属性值的双引号,所以只有第一个字是重要的。其余的成为(无效的)属性名称。

+0

谢谢,我知道它必须是简单的东西。 – Bill 2012-03-01 04:30:35

1

养成缠绕的习惯,数组索引在双引号内,即"用于字符串索引。

$screenshot = array( 
    array( 
     "Carousel" => "Library.png", 
     "Caption" => "Long caption for the library goes here", 
     "ListItem" => "The Library") 
    ); 
+0

我已阅读过有关这两种方法,但我会坚持这条路线,谢谢。 – Bill 2012-03-01 04:31:07

0

请使用此代码

echo "<div class=\"feature-title\"><a href='" . $carousel_dir . $screenshot[$row]["Carousel"] . "' title='" . $screenshot[$row]["Caption"] . "' rel=\"lightbox[list]\">" . $screenshot[$row]["ListItem"] . "</a></div>"; 
+0

你忘记了'href'的引号。 – apfelbox 2012-03-01 08:12:08

1

由于Starx和Ignacio已经提到的,阵列的关键部件需要引用。不管它们是单引号还是双引号。在上线badarray.php假定“旋转木马” - 未定义的常量转盘的使用:如果您打开更多的详细日志记录(如E_ALL代替E_ALL &〜E_NOTICE),你会得到的消息是这样的:

PHP的通知3

PHP公告:未定义的常量标题使用 - 假设“标题”在badarray.php上线3

PHP公告:未定义的常量列表项的使用 - 在badarray.php假定“列表项” 3

线

PHP尝试找到已用这些名称定义的常量。当它找不到一个它假定你的意思是该值的字符串。这意味着如果你曾经定义过一个名为“Carousel”,“Caption”或“ListItem”的常量,它会改变你定义的数组中的键值。

我看到的另一个问题,它可能只是只包含部分代码,是外部数组中只有一个数组,因此当您访问$ screenshot [$ row]时,会有一旦你的循环增加$行超过0.

如果你可以提供你想要使用该数组输出,我可以帮你建立代码。