Pendant le processus de développement, il est souvent nécessaire de perturber le tableau PHP au hasard pour réaliser des fonctions telles que la loterie, le tri aléatoire, etc. Mais parfois, nous voulons maintenir la position relative entre les éléments partiels inchangés tout en perturbant l'ordre. Comment pouvons-nous non seulement perturber le tableau, mais également maintenir l'ordre relatif des éléments? Cet article l'analysera en détail pour vous.
La fonction Shuffle intégrée de PHP peut mélanger au hasard l'ordre des éléments d'un tableau. Cette fonction agit directement sur le tableau lui-même, perturbant la disposition des éléments et randomisant l'ordre du tableau. Cependant, la fonction Shuffle lui-même perturbe complètement l'ordre des éléments et la position relative des éléments ne peut pas être maintenue.
Si vous souhaitez conserver la position relative de certains éléments inchangés tout en gâchant le tableau, vous devez personnaliser la logique de traitement en fonction du scénario commercial. Par exemple, vous pouvez regrouper les tableaux, utiliser Shuffle pour chaque élément de groupe, puis les fusionner dans un nouveau tableau. Cela garantit que l'ordre relatif des éléments du groupe reste inchangé et que l'ordre entre les groupes est perturbé.
$array = [1, 2, 3, 4, 5];
// utiliser shuffle Fonctions perturber l'ordre du tableau
shuffle($array);
// Imprimez le tableau désordonné
print_r($array);
Supposons que vous ayez une liste de candidats et que vous devez dessiner au hasard plusieurs gagnants. Dans le même temps, vous espérez que le classement relatif des candidats restera cohérent avec la liste originale de la liste des gagnants. Voici un exemple de code:
$candidates = array(
"Alice",
"Bob",
"Carol",
"Dave",
"Eve",
);
// utiliser shuffle Perturber l'ordre des candidats
shuffle($candidates);
// Avant le tirage 10 Candidats
$winners = array_slice($candidates, 0, 10);
// Imprimer le candidat gagnant
print_r($winners);
Dans ce code, bien que la fonction de shuffle soit utilisée pour perturber aléatoirement l'ordre des candidats, une autre logique de tri peut être combinée dans les opérations ultérieures pour s'assurer que la position relative des gagnants dans le tableau d'origine est conservée.
Cet article présente l'utilisation de base et les limites de l'utilisation de la fonction de shuffle pour perturber aléatoirement les tableaux en PHP, en particulier le fait que la position relative des éléments ne peut pas être directement maintenue. Grâce à des exemples et à des idées, nous pouvons vous aider à gérer de manière flexible les exigences de perturbation dans les projets réels et à répondre aux besoins de développement de scénarios plus complexes.