Hướng dẫn dùng tallest font trong PHP

Vì API Bitbucket không cung cấp phương pháp lấy thẻ mới nhất cho kho lưu trữ, tôi thấy mình phải lấy nó từ một mảng tất cả các thẻ.

Bạn làm nó như thế nào?

Tôi đã thử tối đa nhưng nó không hoạt động đối với một số số nhất định, ví dụ:

max(['1.0.8', '1.0.9', '1.0.10']);

trả về '1.0.9'.

Tôi biết các thẻ sẽ chỉ là ba số, a.b.cchúng sẽ không có các chuỗi được chấp nhận theo semver khác như alpha, v.v. vì cách chúng tôi thực hiện các thẻ cho các đại diện của chúng tôi.

vậy bạn sẽ làm sao?

  • php

10 hữu ích 0 bình luận 1.6k xem chia sẻ

answer

13

Hướng dẫn dùng tallest font trong PHP

$versions = ['1.0.8', '1.0.9', '1.0.10'];
usort($versions, 'version_compare');
echo end($versions);

Xem http://php.net/version_compare

Nếu bạn không muốn sửa đổi mảng:

echo array_reduce($versions, function ($highest, $current) {
    return version_compare($highest, $current, '>') ? $highest : $current;
});

13 hữu ích 2 bình luận chia sẻ

answer

1

Hướng dẫn dùng tallest font trong PHP

Bằng cách sử dụng version_comparechức năng:

function maxVersion($array)
{
    $max = null;

    foreach ($array as $version) {
        if (version_compare($max, $version) === -1) {
            $max = $version;
        }
    }

    return $max;
}

print(maxVersion(['1.0.8', '1.0.9', '1.0.10']));
// returns "1.0.10"

1 hữu ích 0 bình luận chia sẻ

answer

-1

Hướng dẫn dùng tallest font trong PHP

Bởi vì bạn đang xử lý Chuỗi ở đây chứ không phải số, bạn sẽ không nhận được kết quả mà bạn yêu cầu. Bạn có thể thử những cách sau:

$version_numbers = str_replace(".","",['1.0.8', '1.0.9', '1.0.10']);
$max = max($version_numbers);

Nếu bạn luôn xử lý cấu trúc abc cố định thì bằng cách thay thế dấu thập phân, bạn sẽ nhận được một chuỗi các số nguyên cho phép bạn xác định giá trị lớn nhất một cách tương đối dễ dàng

-1 hữu ích 1 bình luận chia sẻ

Hướng dẫn dùng tallest font trong PHP

Đăng nhập để trả lời câu hỏi

Có thể bạn quan tâm

Hướng dẫn dùng tallest font trong PHP