如何对数字中的每个数值进行排序?

时间:2011-10-30 10:43:14

标签: php sorting numbers

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

请以越来越多的方式写下以下数字:34745 用户应该写34457,然后才能确认。

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

3 个答案:

答案 0 :(得分:2)

<?php

$number = str_split("647214");

sort($number);
$number = implode($number);

echo $number;

?>

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

答案 1 :(得分:1)

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

答案 2 :(得分:-1)

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

   $num = 34745;
   $chars = preg_split('/ /', $num, -1, PREG_SPLIT_OFFSET_CAPTURE);

   sort($chars);

   $res = implode("", $chars);
   echo $res;

我没有测试过这个,但我希望它有效!