Ich habe Benutzer auf meiner Website, Benutzer wählen ihre Gruppe 1/2/3 aus ihrem Profil aus. Aufgrund ihrer Auswahl werden sie in 3 Arrays unterteilt:
$group1_recipients[], $group2_recipients[], $group3_recipients[]
Beispieldaten:
$group1_recipients = ["用户A","用户B","用户C"], $group2_recipients = ["用户D","用户B","用户E"], $group3_recipients = ["用户A","用户B","用户E"]
Das bedeutet, dass Benutzer A Gruppe 1 und Gruppe 3 ausgewählt hat. Ebenso wählte Benutzer B die Gruppen 1, 2 und 3 aus.
Jetzt erstelle ich das Bild und wähle beim Erstellen des Bildes die Gruppe 1/2/3 aus. Basierend auf der Benutzergruppenauswahl möchte ich ein Bild ein-/ausblenden:
Beispiel: Wenn ich ein Bild für Gruppe 1 und Gruppe 2 erstelle, können nur Benutzer, die diese Gruppen ausgewählt haben, das Bild sehen. Und wenn ein Benutzer Gruppe 1 und Gruppe 2 auswählt, kann er nur ein Bild sehen. Keine Duplizierung.
Ich bin der folgenden Logik gefolgt:
$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 "没有匹配的受众类型"; }
Diese Logik ist nicht ganz gültig. Beim Erstellen von Bildern für alle 3 Gruppen wählt der Benutzer nur Gruppe 2 oder Gruppe 3 aus und die Bilder werden nicht angezeigt. Diese Logik verlässt die Schleife, sobald sie eine passende Gruppe findet. Gibt es Hilfe, wie man das Problem beheben kann?
PS: Dies ist ein Beispielcode. Bitte ignorieren Sie Parsing-/Syntaxfehler
看起来你对image_group和group_recipients有些混淆,并且你在使用$g而不是user
这是一种方法。有很多变种。这将$match设置为false或匹配的组。