Как str_shuffle()
в PHP, существует ли функция, аналогичная перетасовке строки в javascript?
Пожалуйста помоги !
Нет такой функции, вы сами ее напишете. Вот пример:
function shuffle(string) { var parts = string.split(''); for (var i = parts.length; i > 0;) { var random = parseInt(Math.random() * i); var temp = parts[--i]; parts[i] = parts[random]; parts[random] = temp; } return parts.join(''); } alert(shuffle('abcdef'));
Вы можете использовать реализацию php.js: http://phpjs.org/functions/str_shuffle:529
Нет, нет встроенного метода String, который будет рандомизировать последовательность символов.
Вот моя версия функции php.js
function str_shuffle (str) { var newStr = []; if (arguments.length < 1) { throw 'str_shuffle : Parameter str not specified'; } if (typeof str !== 'string') { throw 'str_shuffle : Parameter str ( = ' + str + ') is not a string'; } str = str.split (''); while (str.length) { newStr.push (str.splice (Math.floor (Math.random () * (str.length - 1)) , 1)[0]); } return newStr.join (''); }
Вы также можете сделать это как прототип:
String.prototype.shuffle = function() { var parts = this.split(''); for (var i = 0, len = parts.length; i < len; i++) { var j = Math.floor( Math.random() * ( i + 1 ) ); var temp = parts[i]; parts[i] = parts[j]; parts[j] = temp; } return parts.join(''); };
Используя его так:
var myString = "Hello"; myString = myString.shuffle();
Я бы рекомендовал функцию lodash shuffle .
const result = _.shuffle('my_string');