Maison > Questions et réponses > le corps du texte
J'ai des utilisateurs sur mon site, les utilisateurs sélectionnent leur groupe 1/2/3 depuis leur profil. En fonction de leur sélection, ils sont répartis en 3 tableaux :
$group1_recipients[], $group2_recipients[], $group3_recipients[]
Exemples de données :
$group1_recipients = ["用户A","用户B","用户C"], $group2_recipients = ["用户D","用户B","用户E"], $group3_recipients = ["用户A","用户B","用户E"]
Cela signifie que l'utilisateur A a sélectionné le groupe 1 et le groupe 3. De même, l'utilisateur B a sélectionné les groupes 1, 2 et 3.
Maintenant, je crée l'image et sélectionne le groupe 1/2/3 lors de la création de l'image. Donc, en fonction de la sélection du groupe d'utilisateurs, je souhaite afficher/masquer une image :
Exemple : Si je crée une image pour le groupe 1 et le groupe 2, seuls les utilisateurs qui ont sélectionné ces groupes peuvent voir l'image. Et si un utilisateur sélectionne le groupe 1 et le groupe 2, il ne peut voir qu'une seule image. Pas de double emploi.
J'ai suivi la logique suivante :
$groups = ["1", "2", "3"]; $match = false; foreach ($groups as $g) { if (in_array($g, $groups)) { $match = true; break; } } if(true===$match) { if($g == "1"){ $audience = $group1_recipients; } else if($g == "2"){ $audience = $group2_recipients; } else if($g == "3"){ $audience = $group3_recipients; } } else { echo "没有匹配的受众类型"; }
Cette logique ne fonctionne pas entièrement. Lors de la création d'images pour les 3 groupes, l'utilisateur sélectionne uniquement le groupe 2 ou le groupe 3 et les images ne sont pas affichées. Cette logique quitte la boucle une fois qu'elle trouve un groupe correspondant. Une aide pour résoudre ce problème ?
PS : Ceci est un exemple de code. Veuillez ignorer les erreurs d'analyse/syntaxe
P粉1788942352023-09-14 09:26:30
On dirait que vous avez une certaine confusion entre image_group et group_recipients et que vous utilisez $g au lieu de user
<?php //这个图片所属的组 $image_groups = [1, 2, 3]; //每个组的收件人 $group1_recipients = ["用户A","用户B","用户C"]; $group2_recipients = ["用户D","用户B","用户E"]; $group3_recipients = ["用户A","用户B","用户E"]; //所有收件人的数组 $all_groups = [1=> &$group1_recipients, 2=> &$group2_recipients, 3=> &$group3_recipients]; //用户ID $user = '用户A'; //初始设置为false $match = false; // 遍历每个image_group foreach ($image_groups as $group) { //获取groupn_recipients数组 $recipients = &$all_groups[$group]; //如果用户在收件人数组中,则将Match设置为Group if (in_array ($user, $recipients)) { $match = $group; break; } } if ($match) { echo "与组 $group 匹配\n"; } else { echo '不匹配', "\n"; } ?>
C'est une façon. Il existe de nombreuses variantes. Cela définit $match sur false ou sur le groupe correspondant.