mehrfach vorhandene Elemente aus Array löschen

tklustig

Erfahrenes Mitglied
Hallo Leute,
gesetzt den Fall, ich habe folgende beiden Arrays:
Code:
array(27) { [0]=> string(78) "Formular Kandidaten - Live-Version und eingebundene externe Funktion.php-Datei" [1]=> string(8) "Branchen" [2]=> string(22) "KnowHow DB Constraints" [3]=> string(24) "AW:mündliche Prüfung" [4]=> string(43) "AW: C#-Graphical_User_Interface-Application" [5]=> string(45) "TeamViewer Benutzerkonto - E-Mail Validierung" [6]=> string(25) "AW:Schriftliche Prüfung" [7]=> string(12) "AW:Prüfung" [8]=> string(11) "AW:SQL-Dump" [9]=> string(0) "" [10]=> string(0) "" [11]=> string(0) "" [12]=> string(1530) "Ja ist soweit richtig. So ist die mündliche Prüfung abgelaufen. Mit powerpoint Präsentation und Fach Fragen der Prüfer. Wir machen das jetzt einfacher. Gib mir mal eure büro Nummer. Dann rufe ich morgen mal an. Dann können wir da besser drüber sprechen. Und alle fragen in einem Telefonat klären. MfgVon meinem Huawei-Mobiltelefon gesendet-------- Originalnachricht --------Betreff: mündliche PrüfungVon: Thomas Kipp An: soeren.kolze@web.deCc: Habe das noch nicht so ganz begriffen. Die mündliche Prüfung, die du überdurchschnittlich bestanden haben willst – bitte korrigiere mich, sofern ich falsch liege- ist doch im Großen und Ganzen die Vorstellung des Projektes, welches du in yii2 programmiert und bei uns vor Ort präsentiert hast. Dazu war sicherlich eine Projektdokumentation nötig, welche die Prüfer bewertet haben. Diese Bewertung zzgl. diverser Fachfragen zu Deinem Projekt ergaben dann die mündliche Note, richtig?Mein Interesse liegt jetzt vor allem an der Projektdokumentation.Auf die schriftlichen Prüfungen kann man sich adäquat vorbereiten, indem man mindestens die letzten drei Prüfungsjahre wiederholt(2*3  +3 *280 Minuten Bearbeitungszeit) .Adäquate Projektdokumentationen, um den didaktischen Aufbau nachzuvollziehen, habe ich keine. Insofern wäre ich über die Deinige, bestenfalls als Powerpoint-Präsentation, sehr erfreut, vor allem, da sie die Prüfer überzeugt hat.Stimmen meine Mutmaßungen über deine mündliche Prüfung??Happy CodingThomas Kipp-Praktikant-  " [13]=> string(0) "" [14]=> string(757) " Guten Tag, Vielen Dank für die Registrierung Ihres TeamViewer Kontos. Klicken Sie nun auf folgenden Link, um Ihr Konto abschließend zu aktivieren. https://login.teamviewer.com/activateaccount.aspx?lng=de&token=2c39cf2f-56d7-480d-8a92-5ce2eb40e85d Falls Klicken des Links nicht funktioniert, können Sie den Link in Ihr Browserfenster kopieren bzw. direkt dort hineinschreiben. Mit freundlichen Grüßen, Ihr TeamViewer Team ----------------------------- www.teamviewer.com TeamViewer GmbH * Jahnstr. 30 * 73037 Göppingen * Deutschland Tel. +49 (0)7161 60692 50 * Fax +49 (0) 7161 60692 79 Handelsregister Ulm HRB 534075 * Geschäftsführer: Andreas König, Dr. Thomas Nowak " [15]=> string(462) "Moin, ich habe meine schriftliche erst im November. Konnte an der Sommer Prüfung nicht teilnehmen. Nur die mündliche habe ich machen und bestehen können. Grüße Sören Von meinem Huawei-Mobiltelefon gesendet-------- Originalnachricht --------Betreff: Schriftliche PrüfungVon: Thomas Kipp An: soeren.kolze@web.deCc: Hallo Soeren,einer von unseren Umschülern ist durch die Prüfung gefallen. Wie sieht’s bei Dir aus-bestanden?LGThomas-Praktikant- " [16]=> string(462) "Guten Tag, mündliche Prüfung habe ich erfolgreich bestanden 87%. Ja das wäre nett wenn du mir die schriftlichen mal schicken könntest. Habe da nur ein paar. Grüße Sören Von meinem Huawei-Mobiltelefon gesendet-------- Originalnachricht --------Betreff: PrüfungVon: Thomas Kipp An: soeren.kolze@web.deCc: A propos Prüfungen: Habe alle Prüfungen (GA1,GA2 und WISO) samt Lösungen der letzten 15 Jahre.Bei Interesse einfach melden. Happy Coding! " [17]=> string(663) "Guten Morgen, hier einmal die SQL wie besprochen.Schönes Wochenende Von meinem Huawei-Mobiltelefon gesendet-------- Originalnachricht --------Betreff: SQL-DumpVon: Thomas Kipp An: soeren.kolze@web.deCc: Hi Soeren,habe jetzt direkt auf Bitbucket die von Dir zur Verfügung gestellten Yii2-Dateien runtergeladen, benötige allerdings noch die im Hintergrund agierende (MySQL-)Datenbank.Ich bitte dich also, mittels phpmyadmin einen SQL-Dump zu erstellen und mir per E-Mail zukommen zu lassen.Sollte der Dump zu groß sein, kann ich dir bei Bedarf auch gerne die Zugangsdaten zum meinem FTP-Server mitteilen. Alloah Assembler Thomas Kipp-Praktikant- " [18]=> string(22) "b.weiss@wsl-service.de" [19]=> string(22) "b.weiss@wsl-service.de" [20]=> string(16) "kalkan@kalkan.de" [21]=> string(19) "soeren.kolze@web.de" [22]=> string(13) "post98@gmx.de" [23]=> string(22) "service@teamviewer.com" [24]=> string(19) "soeren.kolze@web.de" [25]=> string(19) "soeren.kolze@web.de" [26]=> string(19) "soeren.kolze@web.de" }

array(24) { [0]=> string(78) "Formular Kandidaten - Live-Version und eingebundene externe Funktion.php-Datei" [1]=> string(8) "Branchen" [2]=> string(22) "KnowHow DB Constraints" [3]=> string(24) "AW:mündliche Prüfung" [4]=> string(45) "TeamViewer Benutzerkonto - E-Mail Validierung" [5]=> string(25) "AW:Schriftliche Prüfung" [6]=> string(12) "AW:Prüfung" [7]=> string(11) "AW:SQL-Dump" [8]=> string(153) "Mailinhalt konnte aufgrund des verwendeten Zeichensatzes iso-8859-1 nicht dargestellt werden. Nehmen Sie einen Mailclient zu Hilfe, um die Mail zu lesen!" [9]=> string(153) "Mailinhalt konnte aufgrund des verwendeten Zeichensatzes iso-8859-1 nicht dargestellt werden. Nehmen Sie einen Mailclient zu Hilfe, um die Mail zu lesen!" [10]=> string(153) "Mailinhalt konnte aufgrund des verwendeten Zeichensatzes iso-8859-1 nicht dargestellt werden. Nehmen Sie einen Mailclient zu Hilfe, um die Mail zu lesen!" [11]=> string(1530) "Ja ist soweit richtig. So ist die mündliche Prüfung abgelaufen. Mit powerpoint Präsentation und Fach Fragen der Prüfer. Wir machen das jetzt einfacher. Gib mir mal eure büro Nummer. Dann rufe ich morgen mal an. Dann können wir da besser drüber sprechen. Und alle fragen in einem Telefonat klären. MfgVon meinem Huawei-Mobiltelefon gesendet-------- Originalnachricht --------Betreff: mündliche PrüfungVon: Thomas Kipp An: soeren.kolze@web.deCc: Habe das noch nicht so ganz begriffen. Die mündliche Prüfung, die du überdurchschnittlich bestanden haben willst – bitte korrigiere mich, sofern ich falsch liege- ist doch im Großen und Ganzen die Vorstellung des Projektes, welches du in yii2 programmiert und bei uns vor Ort präsentiert hast. Dazu war sicherlich eine Projektdokumentation nötig, welche die Prüfer bewertet haben. Diese Bewertung zzgl. diverser Fachfragen zu Deinem Projekt ergaben dann die mündliche Note, richtig?Mein Interesse liegt jetzt vor allem an der Projektdokumentation.Auf die schriftlichen Prüfungen kann man sich adäquat vorbereiten, indem man mindestens die letzten drei Prüfungsjahre wiederholt(2*3  +3 *280 Minuten Bearbeitungszeit) .Adäquate Projektdokumentationen, um den didaktischen Aufbau nachzuvollziehen, habe ich keine. Insofern wäre ich über die Deinige, bestenfalls als Powerpoint-Präsentation, sehr erfreut, vor allem, da sie die Prüfer überzeugt hat.Stimmen meine Mutmaßungen über deine mündliche Prüfung??Happy CodingThomas Kipp-Praktikant-  " [12]=> string(757) " Guten Tag, Vielen Dank für die Registrierung Ihres TeamViewer Kontos. Klicken Sie nun auf folgenden Link, um Ihr Konto abschließend zu aktivieren. https://login.teamviewer.com/activateaccount.aspx?lng=de&token=2c39cf2f-56d7-480d-8a92-5ce2eb40e85d Falls Klicken des Links nicht funktioniert, können Sie den Link in Ihr Browserfenster kopieren bzw. direkt dort hineinschreiben. Mit freundlichen Grüßen, Ihr TeamViewer Team ----------------------------- www.teamviewer.com TeamViewer GmbH * Jahnstr. 30 * 73037 Göppingen * Deutschland Tel. +49 (0)7161 60692 50 * Fax +49 (0) 7161 60692 79 Handelsregister Ulm HRB 534075 * Geschäftsführer: Andreas König, Dr. Thomas Nowak " [13]=> string(462) "Moin, ich habe meine schriftliche erst im November. Konnte an der Sommer Prüfung nicht teilnehmen. Nur die mündliche habe ich machen und bestehen können. Grüße Sören Von meinem Huawei-Mobiltelefon gesendet-------- Originalnachricht --------Betreff: Schriftliche PrüfungVon: Thomas Kipp An: soeren.kolze@web.deCc: Hallo Soeren,einer von unseren Umschülern ist durch die Prüfung gefallen. Wie sieht’s bei Dir aus-bestanden?LGThomas-Praktikant- " [14]=> string(462) "Guten Tag, mündliche Prüfung habe ich erfolgreich bestanden 87%. Ja das wäre nett wenn du mir die schriftlichen mal schicken könntest. Habe da nur ein paar. Grüße Sören Von meinem Huawei-Mobiltelefon gesendet-------- Originalnachricht --------Betreff: PrüfungVon: Thomas Kipp An: soeren.kolze@web.deCc: A propos Prüfungen: Habe alle Prüfungen (GA1,GA2 und WISO) samt Lösungen der letzten 15 Jahre.Bei Interesse einfach melden. Happy Coding! " [15]=> string(663) "Guten Morgen, hier einmal die SQL wie besprochen.Schönes Wochenende Von meinem Huawei-Mobiltelefon gesendet-------- Originalnachricht --------Betreff: SQL-DumpVon: Thomas Kipp An: soeren.kolze@web.deCc: Hi Soeren,habe jetzt direkt auf Bitbucket die von Dir zur Verfügung gestellten Yii2-Dateien runtergeladen, benötige allerdings noch die im Hintergrund agierende (MySQL-)Datenbank.Ich bitte dich also, mittels phpmyadmin einen SQL-Dump zu erstellen und mir per E-Mail zukommen zu lassen.Sollte der Dump zu groß sein, kann ich dir bei Bedarf auch gerne die Zugangsdaten zum meinem FTP-Server mitteilen. Alloah Assembler Thomas Kipp-Praktikant- " [16]=> string(22) "b.weiss@wsl-service.de" [17]=> string(22) "b.weiss@wsl-service.de" [18]=> string(16) "kalkan@kalkan.de" [19]=> string(19) "soeren.kolze@web.de" [20]=> string(22) "service@teamviewer.com" [21]=> string(19) "soeren.kolze@web.de" [22]=> string(19) "soeren.kolze@web.de" [23]=> string(19) "soeren.kolze@web.de" }

Anhand der Elementenanzahl kann man schnell erkennen, dass 1*3 Elemente in dem zweiten Array nicht vorhanden sind.
Ich möchte diejenigen Elemente aus dem ersten Array löschen, die im zweiten nicht vorhanden sind.
Versuche es so und scheitere damit:
PHP:
 $ArrayOfImapBeingCleaned = array_diff($ArrayOfIMAP, $ArrayofContent);
Es bleiben nur diejenigen Elemente übrig,die nicht in beiden Arrays enthalten sind. Das ist nicht dasselbe! Weiß jemand Rat?
Hier der var_dump auf array_diff()
Code:
array(6) { [4]=> string(43) "AW: C#-Graphical_User_Interface-Application" [9]=> string(151) "Mailinhalt konnte aufgrund des verwendeten Zeichensatz iso-8859-1 nicht dargestellt werden. Nehmen Sie einen Mailclient zu Hilfe, um die Mail zu lesen!" [10]=> string(151) "Mailinhalt konnte aufgrund des verwendeten Zeichensatz iso-8859-1 nicht dargestellt werden. Nehmen Sie einen Mailclient zu Hilfe, um die Mail zu lesen!" [11]=> string(151) "Mailinhalt konnte aufgrund des verwendeten Zeichensatz iso-8859-1 nicht dargestellt werden. Nehmen Sie einen Mailclient zu Hilfe, um die Mail zu lesen!" [13]=> string(151) "Mailinhalt konnte aufgrund des verwendeten Zeichensatz iso-8859-1 nicht dargestellt werden. Nehmen Sie einen Mailclient zu Hilfe, um die Mail zu lesen!" [22]=> string(13) "post98@gmx.de" }
Die Indizie müssen übrigens beibehalten werden, wenn irgend möglich!
 
Ungetestet:
PHP:
$result = array_filter($array1, function($item) {
    return in_array($item, $array2);
});
Damit versuche ich, dies zu implementieren:
Ich möchte diejenigen Elemente aus dem ersten Array löschen, die im zweiten nicht vorhanden sind.
Unterscheidet sich die Aussage im Titel nicht davon?
 
});[/php]Damit versuche ich, dies zu implementieren:Unterscheidet sich die Aussage im Titel nicht davon?
Yuup!
Korrekterweise müsste der Titel heisen:
Nicht vorhandene Elemente aus Array löschen, oder nicht vorhandene Elemente aus Array A verglichen mit Array B löschen:oops:

anstelle von Array_diff() solltest du array_intersect() verwenden.

Diese PHP Funktion ist genau das, was ich brauche. Damit kann ich den bestehenden Code behalten und ersetze array_diff() mit array_intersect(). Danke dafür!
Dieser Thread kann als erfolgreich gelöst geschlossen werden...
 
Zuletzt bearbeitet:
Zurück