2012-03-01 7 views
1

나는 단순히 잘못된 구문이 있다고 생각하지만 내 인생에서 나는 그것을 파악할 수 없습니다. 세 요소가있는 중첩 배열이 있습니다.배열이 전체 요소를 반환하지 않음

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

요소를 포함하는 일부 HTML을 작성하기 위해 for 루프를 사용하고 있습니다.

<?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"태그의 "제목"부분에는 첫 번째 단어 인 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

1

배열 색인을 큰 따옴표로 묶어 버리면됩니다. 즉, 문자열 색인의 경우 "입니다.

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

두 가지 방법에 대해 읽은 적이 있지만이 경로를 고수 할 것입니다. 감사합니다. – Bill

0

Starx와 이그나시오 언급이

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

1

는, 배열의 키 부분을 인용 할 필요가이 코드를 사용하십시오. 그것은 비록 그들이 단일 또는 이중 따옴표 비록 중요하지 않습니다. 당신이 (E_ALL처럼 대신 E_ALL & ~ E_NOTICE를) 더 자세한 로깅을 설정하는 경우는 다음과 같이 메시지를 얻을 것이다 :

PHP 공지 : 정의되지 않은 일정 회전 목마의 사용 - 가정 '회전 목마'를 줄 badarray.php에 3

PHP 공지 : 정의되지 않은 상수 자막의 사용 - 라인에 badarray.php에서 '캡션'가정 3

PHP 공지 : 정의되지 않은 일정을 ListItem의 사용 - 라인 3

에 badarray.php에서 '을 ListItem'가정

PHP는 그 이름으로 정의 된 상수를 찾습니다. 하나를 찾을 수 없으면 그 값의 문자열을 의미한다고 가정합니다. 즉, "Carousel", "Caption"또는 "ListItem"이라는 상수를 정의한 경우 정의한 배열의 키 값이 변경됩니다.

다른 문제는 부분 코드 만 포함되었다는 것입니다. 외부 배열 내부에 하나의 배열 만 있으므로 $ screenshot [$ row]에 액세스 할 때있을 수 있습니다. 아무 것도 없으면 루프가 0 행을 넘어 $ 행을 증가시킵니다.

해당 배열을 사용하여 출력하려는 ​​내용을 제공 할 수 있으면 해당 코드를 작성하도록 도와 줄 수 있습니다.

관련 문제