For a unicode-safe shuffling;
<?php
$r = new \Random\Randomizer();
$s = join($r->shuffleArray(mb_str_split($string)));
(PHP 8 >= 8.2.0)
Random\Randomizer::shuffleBytes โ ๆๅฎใใใๆๅญๅใฎใใใคใๅไฝใฎ้ ๅใๅๅพใใ
ๆๅฎใใใ bytes
ใฎใใๅพใ้ ๅใใใ
็ญ็ขบ็ใซ้ธใฐใใ้ ๅใ่ฟใใพใใ
ๆๅฎใใใ bytes
ใฎใใๅพใ้ ๅใใใใใใ่ฟใใใ็ขบ็ใฏ็ญใใใชใใพใใ
bytes
ใใคใๅไฝใงใทใฃใใใซใใๆๅญๅ
ๆๅฎใใใๆๅญๅใฏๅคๆดใใใพใใใ
bytes
ใฎใ
ใใคใๅไฝใฎ้ ๅใ่ฟใใพใใ
Random\Randomizer::$engine
ใซๅญๅจใใ
Random\Engine::generate() ใกใฝใใ
ใในใญใผใใใใใใใ Throwable ใในใญใผใใใพใใ
ไพ1 Random\Randomizer::shuffleBytes() ใฎไพ
<?php
$r = new \Random\Randomizer();
// ๆๅญๅไธญใฎใใคใๅใใทใฃใใใซใใพใ
echo "ยซ", $r->shuffleBytes("PHP is great!"), "ยป\n";
?>
ไธใฎไพใฎๅบๅใฏใ ใใจใใฐไปฅไธใฎใใใซใชใใพใใ
ยซ ga rHs!PPietยป
ไพ2 ใใคใๅไฝใงใทใฃใใใซใใใจUnicodeๆๅญใฏๅฃใใ
<?php
$r = new \Random\Randomizer();
$unicode = "๐, ๐ฅ, ๐, ๐, ๐";
$shuffled = $r->shuffleBytes( $unicode );
// ใใคใๅไฝใง ASCII ใงใชใๆๅญใใทใฃใใใซใใใจใๅคใๅฃใใฆใใพใใพใใ
// ใใฎ็ตๆใ(Unicode ็ฝฎๆๆๅญใซใใฃใฆ็คบใใใ)ไธๆญฃใชใทใผใฑใณในใ็ๆใใใใใ
// ๅฎๅ
จใซ็ฐใชใๆๅญใๅบๅใซ็พใใใใใพใใ
echo "Original: ", $unicode, "\n";
echo "Shuffled: ยซ", $shuffled, "ยป\n";
echo "Shuffled Bytes: ", bin2hex($shuffled), "\n";
?>
ไธใฎไพใฎๅบๅใฏใ ใใจใใฐไปฅไธใฎใใใซใชใใพใใ
Original: ๐, ๐ฅ, ๐, ๐, ๐ Shuffled: ยซ๏ฟฝ ๏ฟฝ๏ฟฝ,๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๐,๏ฟฝ ๏ฟฝ๏ฟฝ ๏ฟฝ, ๏ฟฝ,๏ฟฝ๏ฟฝยป Shuffled Bytes: 87208e912c8d9fa5f0f0f09f8d9f2cf09f208c9d20f02c209f2c8d8d
For a unicode-safe shuffling;
<?php
$r = new \Random\Randomizer();
$s = join($r->shuffleArray(mb_str_split($string)));