2012-03-01 151 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.

如果你可以提供你想要使用該數組輸出,我可以幫你建立代碼。