Heim  >  Artikel  >  Backend-Entwicklung  >  So erhalten Sie die verschiedenen Teile zweier Arrays in PHP

So erhalten Sie die verschiedenen Teile zweier Arrays in PHP

PHPz
PHPzOriginal
2023-04-20 09:11:19454Durchsuche

PHP ist eine beliebte Open-Source-Skriptsprache, die häufig für die Webentwicklung verwendet wird. Bei der täglichen Arbeit von PHP-Entwicklern ist es oft notwendig, zwei Arrays zu vergleichen und die unterschiedlichen Teile zwischen ihnen zu finden. In diesem Artikel werden einige Methoden zum Erreichen verschiedener Arrays vorgestellt.

  1. array_diff()-Funktion

Die array_diff()-Funktion in PHP kann verwendet werden, um die Differenz zwischen zwei Arrays zu vergleichen. Es gibt die Wertemenge zurück, bei der sich das erste Array von den anderen Arrays unterscheidet. Das Folgende ist der Beispielcode:

$a1 = array("apple", "orange", "banana");
$a2 = array("orange", "banana", "pear");
$result = array_diff($a1, $a2);
print_r($result);

Das laufende Ergebnis wird ausgedruckt:

Array ( [0] => apple )
  1. array_udiff()-Funktion

PHP stellt auch die array_udiff()-Funktion bereit. Mit dieser Funktion können Sie eine Rückruffunktion anpassen, um Werte in einem Array zu vergleichen. Dies ist eine flexiblere Methode, die für komplexere Datenvergleiche geeignet ist. Hier ist der Beispielcode:

function my_array_diff($a1, $a2) {
    return strcmp($a1,$a2);
}

$a1 = array("apple", "orange", "banana");
$a2 = array("orange", "banana", "pear");
$result = array_udiff($a1, $a2, "my_array_diff");
print_r($result);

Diese Funktion gibt auch die Wertemenge im ersten Array zurück, die sich von den anderen Arrays unterscheidet.

  1. array_diff_key()-Funktion

array_diff_key()-Funktion wird verwendet, um die Schlüssel zweier Arrays zu vergleichen, nicht die Werte, die den Schlüsseln entsprechen. Es gibt den Schlüsselsatz zurück, bei dem sich das erste Array von den anderen Arrays unterscheidet. Hier ist der Beispielcode:

$a1 = array("a" => "apple", "b" => "orange", "c" => "banana");
$a2 = array("a" => "orange", "b" => "banana", "d" => "pear");
$result = array_diff_key($a1, $a2);
print_r($result);

Diese Funktion gibt nur das Element mit dem Schlüssel „c“ in $a1 zurück, da es in $a2 keinen entsprechenden Schlüssel gibt.

  1. Multidimensionaler Array-Vergleich

Wenn Sie verschiedene Teile eines mehrdimensionalen Arrays vergleichen müssen, müssen Sie zum Vergleich eine rekursive Funktion verwenden. Hier ist ein Beispielcode für eine rekursive Funktion:

function array_diff_recursive($array1, $array2) {
    $result = array();
    foreach($array1 as $key => $value) {
        if(is_array($value)) {
            if(!isset($array2[$key]) || !is_array($array2[$key])) {
                $result[$key] = $value;
            } else {
                $diff = array_diff_recursive($value, $array2[$key]);
                if(!empty($diff)) {
                    $result[$key] = $diff;
                }
            }
        } else if(!array_key_exists($key,$array2) || $array2[$key] !== $value) {
            $result[$key] = $value;
        }
    }
    return $result;
}

Diese Funktion vergleicht zwei mehrdimensionale Arrays und gibt ein Array zurück, das nur die Werte enthält, in denen sich das erste Array von den anderen Arrays unterscheidet.

Zusammenfassung

Ob Sie zwei einfache Arrays oder mehrdimensionale Arrays vergleichen müssen, PHP verfügt über viele integrierte Funktionen, die Ihnen dabei helfen. Die Funktion array_diff() kann die verschiedenen Teile zwischen zwei Arrays vergleichen, die Funktion array_udiff() ermöglicht es Ihnen, die Rückruffunktion anzupassen, um die Werte im Array zu vergleichen, die Funktion array_diff_key() vergleicht die Schlüssel der beiden Arrays, nicht die Werte und schließlich, wenn Sie verschiedene Teile eines mehrdimensionalen Arrays vergleichen müssen, müssen Sie zum Vergleich eine rekursive Funktion verwenden. Wenn Sie diese Methoden kennen, können Sie Aufgaben im Zusammenhang mit Array-Vergleichen einfacher durchführen.

Das obige ist der detaillierte Inhalt vonSo erhalten Sie die verschiedenen Teile zweier Arrays in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn