2016-07-10 3 views
1

다차원 배열을 가지고 있는데 배열에 문자열이 있는지 확인하려고합니다.Twig 다차원 배열의 문자열이 존재하는지 확인하십시오.

그러나 문자열이 여러 번 존재하면 단추가 여러 번 표시되는 것을 원하지 않습니다.

{% for city in all if city.city == "Hamburg"%} 
    {# Should show button only once #} 
    <button>Hamburg</button> 
{% endfor %} 

는 이제 함부르크 함부르크 함부르크 함부르크 함부르크 함부르크 ... 난 단지 버튼 한 번만 표시되어 있는지 원하는 를 반환합니다.

호프 내 질문이 분명하고 너희들이 나를 도울 수 있는지 제발, 나는 어떻게 해야할지 모르겠다.

+0

[삭제 요청이 중복] (https://stackoverflow.com/questions/17788424/tweak-array-on-twig # 17796120에있는 how-to-remove-duplicated-items) 다음 루프를 통과합니까? – kero

+0

불가능합니다. 도시와 프로필이 있습니다. 도시 함부르크의 예 50 프로필, 도시 베를린의 프로필 30 개 등. 버튼은 검색을 위해 빠른 링크에서 사용해야합니다. 프로필이 매일 바뀌므로 버튼을 수동으로 만들 수 없습니다. 때로는 도시 함부르크가있는 프로필이 없습니다 –

+1

나는 이해하지 못합니다. 중복이 없으며이 루프에 사용할 수있는 두 번째 배열'all_unique'를 만들 수 있어야합니다. – kero

답변

0

덕분에 DarkBee

에 나는 API에 대한 별도의 PHP 파일이

function getCities() { 
    $cities=api(); 
    if(!is_array($cities)) $cities=[]; 
    foreach($cities as $city) 
     if (!in_array($city['city'], $cities)) $cities[] = $city['city']; 
     sort($cities); 
     return $cities; 
} 

return $this->render('template.html.twig', [ 
     'Cities'=>$this->getCities(), 
    ]); 

을 컨트롤러

에 렌더링 그리고 마지막으로 템플릿에

{% if "Hamburg" in Cities %} 
       Hamburg 
      {% endif %} 
관련 문제