产量最低,价格范围最高

时间:2013-04-12 11:08:03

标签: php wordpress

我在Wordpress网站上保存了许多自定义帖子类型的商品,其中各种价格以字符串形式$nn.nn$n附加为自定义元。

我想输出以下内容:

  

价格范围从£nn.nn到£nn.nn?

所以,我想询问价格元,只显示最低和最高。

是否可以在PHP中执行此操作?

到目前为止,这是我设法提出的所有内容,但它只是输出以逗号分隔的所有价格的列表:

$args = array('post_type' => 'shop-items',);

$the_query = new WP_Query( $args );

if ( $the_query->have_posts() ):

    echo 'Prices range from ';

    // The Loop
    while ( $the_query->have_posts() ) : $the_query->the_post();

        $price  = get_post_meta( get_the_ID(), 'itemprice', true );

        echo '$price . ', ';

    endwhile;

endif;

2 个答案:

答案 0 :(得分:1)

首先声明变量(包含结果):

$min_price = INF;
$max_price = -INF;

在你的循环中执行:

$price = get_post_meta( get_the_ID(), 'itemprice', true );
if ($price < $min_price)
    $min_price = $price;
if ($price > $max_price)
    $max_price = $price;

最后写(在if之前):

echo "$min_price to $max_price";

答案 1 :(得分:1)

使用sort()作为价格数组

if ( $the_query->have_posts() ):
$pricearray=array();
echo 'Prices range from ';

// The Loop
while ( $the_query->have_posts() ) : $the_query->the_post();

    $price  = get_post_meta( get_the_ID(), 'itemprice', true );
$price=str_replace("£","",$price);
if(!empty($price)){
     $pricearray[]= $price;
 }else{
 $pricearray[]= "0";
 }
endwhile;

endif;

sort($pricearray, SORT_NUMERIC);
$minprice=$pricearray[0];
$maxprice=$pricearray[count($pricearray)-1]