Navigation
 Startseite
 Fachbücher
 Forum
 Webmaster News
 Script Newsletter
 Kontakt
 Script Installation
 Php
 Php Tutorials
 Impressum

Community-Bereich
 kostenlos Registrieren
 Anmelden
 Benutzerliste

Script Datenbank
 Script Archiv
 Script Top 20
 Screenshots
 Testberichte

Suche
 

Unsere Php Scripts
 Counter Script
 Umfrage Script
 Bilder Upload Script
 Terminverwaltung
 Simple PHP Forum
 RSS Grabber

Script Mods
 phpBB Adsense Mode

Tools und Generatoren
 .htpasswd Generator
 md5 Generator
 base64 Generator
 Markdown to HTML
 Colorpicker
 Unix timestamp Tool
 TLD Liste
 Webkatalog‑Verzeichnis

Partner
 Sprüche Treff

Hosterplus.de
Bekommen Sie Speicherplatz (Webspace), Domains und...
https://www.Hosterplus.de
Artfiles.de
Bietet Serviceorientierte Internetdienstleistungen...
https://www.Artfiles.de
 
 
 

Mehrere Arrays vergleicht und den Unterschied ermittelt

Sie befinden sich: Home > Php Tutorial > Mehrere Arrays vergleicht u...

Mehrere Arrays vergleicht und den Unterschied ermittelt


Eintrag am:  16.01.2023
Hits / Besucher:  2329
Sprache:  Deutsch
Kategorie:  Einsteiger Tutorials...
Tutorial Art:  eigenes
Eingetragen von   schubertmedia schubertmedia
 
Beschreibung

Array_diff() ist eine in PHP verfügbare Funktion, die ein Array als Eingabe akzeptiert und das Array dann mit einem oder mehreren anderen Arrays vergleicht. Die Funktion ermittelt dann alle Werte, die nur im ersten Array vorkommen und gibt diese als neues Array zurück.

Die Syntax lautet:

array array_diff (array $array1, array $array2 [, array $...])

Der Rückgabewert ist ein Array, das alle Werte enthält, die nur im ersten Array vorkommen. Wenn keine Werte gefunden werden, die nur im ersten Array vorkommen, gibt die Funktion ein leeres Array zurück.

Hier sind ein paar Beispiele für die Verwendung von array_diff():

Beispiel 1:

<?php 

$ersteReihe = array("grün", "rot", "blau");
$zweiteReihe = array("rot", "gelb", "blau");
$ergebnis = array_diff($ersteReihe, $zweiteReihe);

print_r($ergebnis);
?>

Ausgabe: 

Array

(
[0] => grün
)

Erklärung: 

Der obige PHP-Code erstellt zwei Arrays. Der erste Array heißt „ersteReihe“ und enthält die drei Elemente grün, rot und blau. Das zweite Array heißt „zweiteReihe“ und enthält ebenfalls die drei Elemente rot, gelb und blau. Anschließend wird die Funktion „array_diff“ aufgerufen, welche die Elemente der beiden Arrays miteinander vergleicht. Die Funktion gibt ein Array zurück, das die Unterschiede zwischen den beiden Arrays enthält. Im oben gezeigten Code befindet sich das Ergebnis-Array in der Variablen „ergebnis“. Die Ausgabe des Codes gibt das Ergebnis-Array wieder, was im oben angegebenen Fall nur aus dem Element „grün“ besteht.

Beispiel 2:

<?php 

$ersteGruppe = array("eins", "zwei", "drei", "vier");
$zweiteGruppe = array("eins", "vier", "fünf", "sechs");
$ergebnis = array_diff($ersteGruppe, $zweiteGruppe);

print_r($ergebnis);
?>

Ausgabe:

Array

(
[1] => zwei
[2] => drei
)

Erklärung:

Dieser PHP-Code initialisiert zwei Arrays ($ersteGruppe und $zweiteGruppe) und speichert diese in den Variablen. Anschließend wird die Funktion array_diff() aufgerufen, welche die Unterschiede zwischen den beiden Arrays in einem dritten Array ($ergebnis) speichert. Die Funktion array_diff() vergleicht die Elemente der beiden Arrays und speichert nur die Elemente, die nur in dem ersten Array vorkommen. In diesem Fall sind das „zwei“ und „drei“. Am Ende wird das Ergebnis-Array mithilfe der print_r()-Funktion ausgegeben.

 

Erkunden Sie die Funktion array_diff(): 10 Fragen und Antworten

Die array_diff Funktion ist eine leistungsstarke PHP-Funktion, die zur Ermittlung des Unterschieds zwischen zwei oder mehr Arrays verwendet wird. Um mehr über die Funktionalität und Verwendungsmöglichkeiten der Funktion zu erfahren, stellen wir hier zehn Fragen über array_diff und geben die entsprechenden Antworten.

  • Wie wird die array_diff Funktion verwendet?
    • Die array_diff Funktion wird verwendet, um den Unterschied zwischen zwei oder mehr Arrays zu ermitteln. Sie nimmt dazu mindestens zwei Parameter entgegen. Der erste Parameter ist das Array, auf das sich die Unterschiede beziehen. Der zweite und jeder weitere Parameter ist ein Array, das mit dem ersten Array verglichen wird.

  • Wie viele Parameter nimmt die array_diff Funktion an?
    • Die array_diff Funktion nimmt mindestens zwei Parameter entgegen. Der erste Parameter ist das Array, auf das sich die Unterschiede beziehen. Der zweite und jeder weitere Parameter ist ein Array, das mit dem ersten Array verglichen wird.

  • Gibt es Einschränkungen, in Bezug auf die Parameter, die die array_diff Funktion annehmen kann?
    • Ja, es gibt Einschränkungen in Bezug auf die Parameter, die die array_diff Funktion annehmen kann. Alle Parameter müssen Arrays sein. Wenn ein Parameter kein Array ist, wird eine Warnung generiert und die Funktion gibt NULL zurück.

  • Was wird als Ergebnis der array_diff Funktion zurückgegeben?
    • Als Ergebnis der array_diff Funktion wird ein Array zurückgegeben, das die Elemente enthält, die nur in dem ersten Array enthalten sind.

  • Können auch mehrdimensionale Arrays an die array_diff Funktion übergeben werden?
    • Nein, mehrdimensionale Arrays können an die array_diff() Funktion nicht übergeben werden. Wenn Sie mehrdimensionale Arrays verwenden, bekommen Sie die Fehlermeldung:

      Warning: Array to string conversion ...

      Sie können aber eine eigene Funktion schreiben, welche rekursiv, die Arrays durchläuft.

      Beispiel:
      <?php
      

      function recursive_array_diff($arr1, $arr2) {
      $difference = array();

      foreach($arr1 as $key => $value) {
      if(is_array($value)) {
      if(!isset($arr2[$key])) {
      $difference[$key] = $value;
      } elseif(!is_array($arr2[$key])) {
      $difference[$key] = $value;
      } else {
      $new_diff = recursive_array_diff($value, $arr2[$key]);
      if($new_diff != FALSE) {
      $difference[$key] = $new_diff;
      }
      }
      } elseif(!isset($arr2[$key]) || $arr2[$key] != $value) {
      $difference[$key] = $value;
      }
      }
      return !empty($difference) ? $difference : FALSE;
      }

      $array1 = array(
      'tier' => array('1', '2', '3'),
      'frucht' => array('4', '5', '6'),
      'auto' => array('7', '8', '9')
      );
      $array2 = array(
      'tier' => array('1', '2', '3'),
      'frucht' => array('4', '5', '7'),
      'auto' => array('7', '8', '9')
      );

      $difference = recursive_array_diff($array1, $array2);

      print_r($difference);
      ?>​

      Ausgabe:

      Array
      
      (
      [frucht] => Array
      (
      [2] => 6
      )

      )

      Erläuterung: Dieser PHP-Code beinhaltet eine rekursive Funktion, die es ermöglicht, den Unterschied zwischen zwei Arrays zu ermitteln. Die Funktion nimmt zwei Arrays als Parameter entgegen und gibt ein Array mit allen Unterschieden zurück, die zwischen den beiden Arrays vorhanden sind. 

      Zuerst wird ein leeres Array erstellt, welches später die Unterschiede enthält. Anschließend wird eine foreach-Schleife auf das erste Array angewendet, um jeden Schlüssel und jeden Wert zu überprüfen. Ist der Wert ein weiteres Array, wird zunächst überprüft, ob der Key im zweiten Array vorhanden ist. Ist dies nicht der Fall, wird der Wert dem Unterschieds-Array hinzugefügt. Wenn der Key vorhanden, aber der Wert kein Array, wird ebenfalls der Wert dem Unterschieds-Array hinzugefügt. Ist er ein Array, wird die Funktion rekursiv aufgerufen, um zu überprüfen, ob es Unterschiede zwischen den Arrays gibt. Ist der Wert kein Array, wird überprüft, ob der Key im zweiten Array vorhanden ist und ob die Werte identisch sind. Der Wert wird dann dem Unterschieds-Array hinzugefügt, falls dies nicht der Fall ist.

      Am Ende wird geprüft, ob Unterschiede gefunden wurden. Wenn ja, wird das Unterschieds-Array zurückgegeben, anderenfalls FALSE.

  • Kann die array_diff() Funktion auch mit assoziativen Arrays verwendet werden?
    • Ja, die array_diff() Funktion kann auch mit assoziativen Arrays verwendet werden.

      Beispiel:
      <?php 

      $array1 = array("a" => "green", "red", "blue", "red");
      $array2 = array("c" => "green", "yellow", "red");

      $result = array_diff($array1, $array2);

      print_r($result);
      ?>​

      Ausgabe:

      Array
      
      (
      [1] => blue
      )

      Erläuterung: Der obige PHP-Code verwendet die array_diff() Funktion, um den Unterschied zwischen zwei assoziativen Arrays aufzuzeigen. Der erste Array heißt $array1 und enthält die Werte „green“, „red“, „blue“ und „red“ mit dem Schlüssel „a“. Der zweite Array, $array2, enthält „green“, „yellow“ und „red“ mit dem Schlüssel „c“. Die Funktion array_diff() wird aufgerufen, um den Unterschied zwischen den beiden Arrays zu ermitteln. Das Ergebnis des Aufrufs ist ein Array, das die Werte enthält, die sich in $array1 befinden, aber nicht in $array2. In diesem Fall sind das die Werte „blue“ und „red“.

  • Welche Versionen von PHP unterstützen die array_diff Funktion?
    • Die array_diff() Funktion wird in PHP Version 4.0.1 und höher unterstützt.

  • Gibt es andere Funktionen, die ähnlich wie die array_diff Funktion sind?
    • Es gibt einige ähnliche Funktionen, die ähnlich wie die array_diff() Funktion sind. Dazu gehören array_udiff(), array_diff_key(), array_diff_assoc(), array_diff_uassoc() und array_udiff_assoc().

  • Gibt es andere Anwendungsfälle für die array_diff Funktion?
    • Ja, die array_diff() Funktion hat viele Anwendungsfälle. Sie kann verwendet werden, um Duplikate aus einem Array zu entfernen, ähnliche Arrays zu vergleichen, um zu sehen, was sie voneinander unterscheidet, und um zu bestimmen, welche Elemente in einem Array vorhanden sind und welche nicht.

  • Wie man mit array_diff() doppelte Einträge in einem PHP-Array beseitigt?
    • array_diff() ist eine gängige Funktion in PHP, die verwendet werden kann, um doppelte Einträge in einem Array zu beseitigen. Die Funktion vergleicht zwei Arrays und gibt ein drittes Array zurück, in dem nur die Einträge des ersten Arrays enthalten sind, die nicht im zweiten Array vorhanden sind.

      Um doppelte Einträge in einem Array zu beseitigen, muss man zuerst ein Array mit allen Einträgen erstellen und es dann mit der array_diff()-Funktion vergleichen.

      Beispiel:
      <?php
      
      $original_array = array('A', 'F', 'A', 'C', 'F');
      $unique_array = array_diff($original_array, array('A', 'F'));
      print_r($unique_array);
      ?>

      Ausgabe:

      Array
      
      (
      [3] => C
      )

      Erklärung: Der obige PHP-Code verwendet die array_diff()-Funktion, um doppelte Einträge in einem Array zu beseitigen. Zuerst wird ein Array mit allen Einträgen erstellt, welches in diesem Beispiel „A“, „F“, „A“, „C“, und „F“ enthält. Anschließend wird dieses Array mit der array_diff()-Funktion in Verbindung mit einem zweiten Array mit den Einträgen „A“ und „F“ verglichen. Durch diesen Vergleich wird ein drittes Array erstellt, welches alle Einträge des ersten Arrays enthält, die nicht im zweiten Array vorhanden sind. Dieses dritte Array, welches in diesem Beispiel $unique_array heißt, enthält somit nur den Eintrag „C“.

 

Tags:

 

Artikel hinzufügen bei:
         
Bücherregal mit drei Büchern: 'PHP 4 - Grundlagen und Profiwissen' von Hanser Verlag, 'Webdesign in a Nutshell' von O'Reilly Verlag, und 'Webgestaltung' von Galileo Computing.