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 — Renvoie une permutation par octet d'une chaîne de caractères
Renvoie une permutation uniformément sélectionnée des bytes
d'entrée.
Chaque permutation possible des bytes
d'entrée est également probable d'être retournée.
bytes
La chaîne de caractères dont les octets sont mélangés.
La chaîne de caractères d'entrée ne sera pas modifiée.
Une permutation des octets de bytes
.
Random\Randomizer::$engine
sous-jacent.
Exemple #1 Exemple de Random\Randomizer::shuffleBytes()
<?php
$r = new \Random\Randomizer();
// Mélanger les octets dans une chaîne :
echo "«", $r->shuffleBytes("PHP is great!"), "»\n";
?>
Résultat de l'exemple ci-dessus est similaire à :
« ga rHs!PPiet»
Exemple #2 Mélange par octet des caractères Unicode
<?php
$r = new \Random\Randomizer();
$unicode = "🍎, 🥝, 🍌, 🍑, 🍇";
$shuffled = $r->shuffleBytes( $unicode );
// Le mélange par octet des caractères non-ASCII les détruit,
// ce qui entraîne des séquences invalides (indiquées par le caractère
// de remplacement Unicode) ou même l'apparition de caractères
// entièrement différents dans la sortie.
echo "Original: ", $unicode, "\n";
echo "Shuffled: «", $shuffled, "»\n";
echo "Shuffled Bytes: ", bin2hex($shuffled), "\n";
?>
Résultat de l'exemple ci-dessus est similaire à :
Original: 🍎, 🥝, 🍌, 🍑, 🍇 Shuffled: «� ��,�����🍟,� �� �, �,��» Shuffled Bytes: 87208e912c8d9fa5f0f0f09f8d9f2cf09f208c9d20f02c209f2c8d8d
For a unicode-safe shuffling;
<?php
$r = new \Random\Randomizer();
$s = join($r->shuffleArray(mb_str_split($string)));