【问题标题】:How to sort each numerical value in a number?如何对数字中的每个数值进行排序?
【发布时间】:2011-10-30 10:43:13
【问题描述】:

我正在制作一个 PHP 登录/注册表单并确认某人是否真的是人类而不是机器人,我正在生成一个必须以某种方式写入的随机值。 例如:

请以递增的方式填写以下数字:34745 用户应写入 34457,然后才能进行确认。

问题是我知道如何使用 rand() 函数,这就是我生成数字的方式。但问题是我不知道如何让 PHP 对生成的数字的数值进行排序(例如:64348 -> 34468)。 我该怎么做呢?我希望有一个单独的函数,因为我已经看到了许多对数组进行排序的方法,而且由于它们有索引,我只认为应该可以对数字的值进行排序。

【问题讨论】:

    标签: php sorting numbers


    【解决方案1】:
    <?php
    
    $number = str_split("647214");
    
    sort($number);
    $number = implode($number);
    
    echo $number;
    
    ?>
    

    演示:http://codepad.viper-7.com/RepImd

    【讨论】:

    【解决方案2】:

    您可以创建一个大小为 n 的数组(n 是位数),而不是使用整数来保存完整的数字。遍历数组并使用 rand() 在数组的每个位置创建 0-9 的随机数。现在你有了一个可以使用标准排序函数排序的数组。

    【讨论】:

      【解决方案3】:

      我不认为它有单一的功能,但你可以做到这一点。

         $num = 34745;
         $chars = preg_split('/ /', $num, -1, PREG_SPLIT_OFFSET_CAPTURE);
      
         sort($chars);
      
         $res = implode("", $chars);
         echo $res;
      

      我没有对此进行测试,但我希望它有效!

      【讨论】:

      • 另一个用户发布了一个类似的例子。谢谢你们!
      猜你喜欢
      • 1970-01-01
      • 2016-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-14
      相关资源
      最近更新 更多