Как отсортировать каждое числовое значение в число? - PullRequest
0 голосов
/ 30 октября 2011

Я делаю форму входа / регистрации на PHP и для подтверждения того, что кто-то на самом деле человек, а не бот, я генерирую случайное значение, которое должно быть записано определенным образом.Например:

Пожалуйста, напишите следующее число в возрастающей форме: 34745 Пользователь должен написать 34457, и только тогда будет работать подтверждение.

Дело в том, что я знаю, как использовать ранд (), вот как я генерирую число.Но проблема в том, что я не знаю, как заставить PHP сортировать числовые значения сгенерированного числа (например: 64348 -> 34468).Как мне это сделать?Я надеюсь, что для этого есть одна функция, поскольку я видел множество способов сортировки массивов, и, поскольку они имеют индексы, я только предполагаю, что должна быть возможность сортировки значений числа.

Ответы [ 3 ]

2 голосов
/ 30 октября 2011
<?php

$number = str_split("647214");

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

echo $number;

?>

Демо: http://codepad.viper -7.com / RepImd

1 голос
/ 30 октября 2011

Вместо использования целого числа для хранения полного числа вы можете создать массив размером n (n - это число цифр).Выполните итерацию по массиву и используйте rand () для создания случайных чисел от 0 до 9 в каждой позиции массива.Теперь у вас есть массив, который можно отсортировать с помощью стандартных функций сортировки.

0 голосов
/ 30 октября 2011

Я не думаю, что он имеет одну функцию, но вы можете сделать это.

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

   sort($chars);

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

Я не проверял это, но я надеюсь, что это работает!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...