只有具有最高价值的foreach中的echo项

时间:2016-09-01 16:13:33

标签: php arrays sorting foreach

我想从WordPress中的一组SKU中获取最高数字。我有以下代码,它获取所有SKU的列表。然后我只显示包含字符串'BUR'的那些,然后我使用explode来修剪输出。基于以下什么是最好的方法?

示例数据:

ABB-0001-1
ABB-0002-1
ABB-0003-1
BUR-0001-1
BUR-0002-1
BUR-0003-1

当前代码:

<?php
$args = array(
    'post_type' => array('product'), 
    'posts_per_page' => -1
);

$wcProductsArray = get_posts($args);

if (count($wcProductsArray)) {
    foreach ($wcProductsArray as $productPost) {
        $productSKU = get_post_meta($productPost->ID, '_sku', true);
        $productTitle = get_the_title($productPost->ID);
            if (strpos($productSKU, 'BUR') !== false) { 
                $s = explode("-",$productSKU);
                echo '<li>' . $s[1] . '</li>';
            }
    }
}
?>

当前输出:

0003
0002
0001

期望的输出:

0003

1 个答案:

答案 0 :(得分:1)

我正在考虑这样的事情来追踪最大值:

// initialize $max before the loop
$max = null;

foreach ($wcProductsArray as $productPost) {
    $productSKU = get_post_meta($productPost->ID, '_sku', true);
    $productTitle = get_the_title($productPost->ID);
        if (strpos($productSKU, 'BUR') !== false) { 
            $s = explode("-",$productSKU);

            // update $max as you loop
            $max = max($max, $s[1]);
        }
}
// print it afterward
echo $max;