【问题标题】:PHP check ascending/descending digitsPHP检查升序/降序数字
【发布时间】:2011-01-08 12:12:49
【问题描述】:

我正在编写一个 PHP 脚本。我需要确保字符串的一部分是升序/降序。

例子:

$var = "0212345";

$var2 = "0254321";

如何编写if条件来检查最后5位是升序还是降序?

【问题讨论】:

    标签: php linux string


    【解决方案1】:

    如果您希望 5 位数字是连续数字(从对已删除答案的评论中似乎是这种情况),那么您可以使用 strpos()

    $ascending  = strpos("0123456789", str_split($var, -5)) !== false;
    $descending = strpos("9876543210", str_split($var, -5)) !== false;
    

    如果您希望 5 位数字按递增/递减顺序(但不一定是连续的),您可以使用 regular expression

    (?=\d{5})(0*1*2*3*4*5*6*7*8*9*|9*8*7*6*5*4*3*2*1*0*)$
    

    ?=\d{5} 是一个积极的前瞻,并确保我们匹配 5 位数字。结合最后的$,这匹配last 5。然后升序/降序数字序列检查我们匹配的数字是升序还是降序。如果您需要知道它是两者中的哪一个,则将其拆分为两个单独的正则表达式。

    【讨论】:

      猜你喜欢
      • 2018-09-23
      • 1970-01-01
      • 2022-01-10
      • 2018-01-14
      • 1970-01-01
      • 1970-01-01
      • 2021-03-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多