从元框值中删除重复值

时间:2012-12-04 作者:Ahmad Ajmi

我使用该代码获取自定义类型中的所有元框值

<?php
$args = array(\'post_type\' => \'posttype\');
$emptyvalue = "";
$optionname = "optionname";
$the_query = new WP_Query($args);

$output ="<select name=\'".$optionname."\'> <option value=\'".$emptyvalue."\'>Location</option>\'";

while ( $the_query->have_posts() ) : $the_query->next_post();

    $id= $the_query->post->ID;

    $location = get_post_meta($id, \'institution_location\', true);

    $get_location = $_GET[\'institution-location\'];

    $selected = ($get_location == $location) ? \'selected=selected\' : \'\';

    $output .="<option $selected name=\'".$location."\' value=\'".$location."\'>".$location."</option>";

endwhile;
$output .="</select>";

echo $output;

?>
但是如果有两个自定义贴子具有相同的值,它将返回这两个值,因此我只想返回其中的一个值。

谢谢

1 个回复
最合适的回答,由SO网友:Ahmad Ajmi 整理而成

解决方案

我在while循环外创建了数组,并检查值是否在数组中。

<?php
  $args = array(\'post_type\' => \'posttype\');
  $emptyvalue = "";
  $optionname = "optionname";
  $the_query = new WP_Query($args);

  $output ="<select name=\'".$optionname."\'> <option                                                                  value=\'".$emptyvalue."\'>Location</option>\'";

  $arr = array();
  while ( $the_query->have_posts() ) : $the_query->next_post();

  $id= $the_query->post->ID;

  $location = get_post_meta($id, \'institution_location\', true);

  if(!in_array($location, $arr)){
  array_push($arr, $location);
  $get_location = $_GET[\'institution-location\'];
  $selected = ($get_location == $location) ? \'selected=selected\' : \'\';
  $output .="<option $selected name=\'".$location."\' value=\'".$location."\'>".$location."   </option>";
  }

  endwhile;

   $output .="</select>";

  echo $output;

?>

结束