2011-10-30 28 views
0

我正在做一个PHP登录/注册表单,并确认某人是否真的是人而不是一个机器人我正在生成一个随机值,必须以某种方式写入。 例如:如何对数字中的每个数值进行排序?

请以增加的方式写下列数字:34745 用户应写入34457,并且只有这样才能确认工作。

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

回答

2
<?php 

$number = str_split("647214"); 

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

echo $number; 

?> 

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

+0

正是我所需要的。谢谢! – Onion

+0

@ user1020567:请接受问题,请参阅http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – hakre

+0

当然,对不起。忘记 :) – Onion

-1

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

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

    sort($chars); 

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

我没有测试过这个,但我希望它能起作用!

+0

另一个用户发布了一个类似的例子。感谢你们两位! – Onion

+0

我发布之前还没有更新页面) – Kotodid

1

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

相关问题