2014-11-12 7 views
0

5 개의 값 (val_1, val_2, val_3, val_4, val_5)이있는 선택 필드 (type_evenement)를 사용하여 내 웹 사이트에서 고급 사용자 정의 필드를 사용하고 있습니다.배열 (wp-query 및 ACF) 내에서 PHP를 사용하여 이중 값 삭제

사용자 정의 템플릿 페이지에서 카테고리의 게시물을 표시하는 wp 쿼리를 사용하고 있으며, 모든 게시물은 "선택"사용자 정의 필드를 사용합니다.

이 페이지에서 모든 선택 값을 표시하려고하는데 한 번만 수행하므로 array_unique를 사용하여 double 값을 삭제하려고하지만 작동하지 않습니다. 여기

... 나는, 그것은 모든 값도 두 배, 예를 들어, val_1, val_3, val_4, val_2, val_1, val_1를 표시 루프 내부의 값을 표시하기 위해 쓴 코드입니다

<?php 

// args 
$today = date("Ymd"); 


$args = array (
'category' => 5, 
'posts_per_page' => -1, 
'meta_key'  => 'debut_date', 
'orderby'  => 'meta_value_num', 
'order'   => 'ASC', 
'meta_query' => array(
array(
'key'  => 'fin_date', 
'compare' => '>=', 
'value'  => $today, 
) 
), 
); 

// get results 
$the_query = new WP_Query($args); 

// The Loop 
?> 

<?php if($the_query->have_posts()): ?> 

<?php while ($the_query->have_posts()) : $the_query->the_post(); ?> 

     <?php 
     $input = get_field('type_evenement'); 
     echo($input); 
     ?> 


<?php endwhile; ?> 

<?php endif; ?> 

<?php wp_reset_query(); ?> 

하지만 array_unique를 사용하는 경우, 아무것도 더 이상 표시되지 않습니다 :

<?php 
$input = get_field('type_evenement'); 
$result = array_unique($input); 
echo($result); 
?> 

나는 내가 잘못 이해하지 않는다, 나는 get_field 배열을 반환하는 것을 알고, 그래서 나는 array_unique 더 일을해야한다고 생각?

누군가 나를 도와 줄 수 있다면 좋을 것입니다.

덕분에 많은

답변

0

$input은 단일 값이 아닌 배열입니다. 중복은 while loop에 의해 그 값에 반복적으로 지정됩니다.

<?php while ($the_query->have_posts()) : $the_query->the_post(); 

    $input = get_field('type_evenement'); 
    echo($input); 

중복을 반환하는 쿼리를 수정할 수도 있지만 WordPress처럼 보이므로 작동하지 않을 수 있습니다.

그래서 당신은 배열을 채울 수 첫번째 다음 array_unique()를 사용하고 값 에코 (또는 임시 배열이 이미 포함되어있는 경우 당신은 간단하고, 다시 값을 추가 할 수 없습니다) :

$myArr = array(); 

while ($the_query->have_posts()) { 
    $the_query->the_post(); 
    $input = get_field('type_evenement'); 

    if (!in_array($input,$myArr)){ 
     $myArr[] = $input; 
    } 
} 

foreach ($myArr AS $value){ 
    echo $value; //unique values. 
} 
+0

감사 많이, @ dognose 나는 당신의 코드를 적응시켜야했고 이제는 완벽하게 작동합니다! 덕분에 많이 – mmdwc

+0

다음 올바른 대답으로 대답을 수락하십시오. – alpipego