2011-10-30 27 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的隨機數。現在您可以使用標準排序函數對數組進行排序。

相關問題