Heute habe ich ein paar Probleme damit, ein paar Dinge in PHP herauszufinden. Da ich normalerweise dazu tendiere, etwas zu wandern, werde ich versuchen, meine Frage kurz, aber prägnant zu halten. Hier ist, was ich versuche zu tun.PHP - Zwei mehrdimensionale Arrays komparieren und an ein Array anhängen
Array # 1 ist ein mehrdimensionales Array, das die Ergebnisse der MySQL-Abfrage enthält, die für eine Benutzertabelle in der Datenbank ausgeführt wird. Es würde aussehen, als solche:
Array ([0] => Array ([id] => 79 [firstname] => John [lastname] => Doe [province] => Province [email] => [email protected] [primaryphone] => 123-456-7890) [1] => Array ([id] => 113 [firstname] => Jane [lastname] => Doe [province] => Province [email] => [email protected] [primaryphone] => 123-456-7890))
Array # 2 ist ein weiteres mehrdimensionales Array die Ergebnisse aus einer MySQL-Abfrage für eine Mitgliedschaft Tabelle in der Datenbank durchgeführt enthält, die die ID des Benutzers enthält, die mit der aktuellen Gruppe zugeordnet ist. Es sieht aus wie folgt:
Array ([0] => Array ([userid] => 79) [1] => Array ([userid] => 115) [2] => Array ([userid] => 124))
Was ich zu tun versuchen, für jeden Benutzer in dem Feld # 1, suchen Sie nach einem Wert in dem Feld # 2 unter [userid]
zurückgekehrt ist, der den Wert [id]
in Array # matches 1. Wenn für jeden Benutzer eine Übereinstimmung gefunden wird, hängen Sie den Schlüssel und den Wert [ismember] => 1
für diesen Benutzer in Array # 1 an. Wenn keine Übereinstimmung vorhanden ist, hängen Sie das Paar [ismember] => 0
an Array # 1 an.
Ich fühle, dass dies ein sehr einfacher Prozess sein sollte, und ich vermisse wahrscheinlich nur etwas, das elementar ist ... Aber ich habe es schon eine Weile gemacht und habe keine großen Fortschritte gemacht. Danke Ihnen allen für Ihre Zeit und Hilfe.
== == EDIT Die erste Anordnung wird durch die folgende MySQL Abfrage generiert:
$query = "
SELECT
id,
firstname,
lastname,
province,
email,
primaryphone
FROM userstable
";
try
{
$stmt = $db->prepare($query);
$stmt->execute();
}
catch(PDOException $ex)
{
die("Failed to run query: " . $ex->getMessage());
}
$allusersdetails = $stmt->fetchAll();
Das zweite Array von der Abfrage erzeugt:
$query = "
SELECT
userid
FROM membershipstable
WHERE templateid = :currenttemplateid
";
try
{
$stmt = $db->prepare($query);
$stmt->bindParam(':currenttemplateid', $currenttemplateid);
$stmt->execute();
}
catch(PDOException $ex)
{
die("Failed to run query: " . $ex->getMessage());
}
$templateusers = $stmt->fetchAll();
Sie müssen 2 for Schleifen für Array # 1 und Array # 2 übereinstimmen. –
Es klingt wie Sie dies mit einer MySQL-Abfrage tun könnten. Verwenden Sie nur das 2. Array für diesen Zweck? – Terminus
So kommen die beiden Arrays aus verschiedenen Tabellen.Eine Tabelle ist die Informationstabelle des Benutzers und die andere Tabelle speichert die Zuordnung zwischen der ID des Benutzers und jeder Gruppe, der sie zugeordnet sind. Im Moment verwende ich eine Abfrage, um die Benutzerinformationen aus dem ersten Array abzurufen, und eine zweite Abfrage, um ihre Zuordnung zur aktuellen Gruppe zurückzugeben. –