Heim > Backend-Entwicklung > PHP-Problem > So erhalten Sie verschiedene Teile zweier assoziativer Arrays in PHP

So erhalten Sie verschiedene Teile zweier assoziativer Arrays in PHP

PHPz
Freigeben: 2023-03-23 15:46:01
Original
1354 Leute haben es durchsucht

Bei der PHP-Entwicklung müssen wir häufig zwei assoziative Arrays vergleichen und ihre unterschiedlichen Teile ermitteln. Im Folgenden stellen wir verschiedene Möglichkeiten vor, um diese Funktionalität zu erreichen.

Methode 1: Verwenden Sie die Funktion array_diff_assoc().

Die Funktion array_diff_assoc() kann verwendet werden, um Schlüssel-Wert-Paare zweier assoziativer Arrays zu vergleichen und alle Elemente im ersten Array, jedoch nicht in anderen Arrays, zurückzugeben und den Schlüsselnamen beizubehalten und Schlüsselwert.

Codebeispiel:

$array1 = array("name"=>"张三", "age"=>22, "salary"=>3000);  
$array2 = array("name"=>"李四", "age"=>22, "salary"=>4000);  
$result = array_diff_assoc($array1, $array2);  
print_r($result);
Nach dem Login kopieren

Das Ausgabeergebnis ist:

Array
(
    [name] => 张三
    [salary] => 3000
)
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Wie Sie sehen können, enthält das Ergebnisarray nur die Schlüssel-Wert-Paare mit den Schlüsselnamen „name“ und „salary“ in Array 1, da dies nicht der Fall ist erscheinen in Array 2 .

Methode 2: Verwenden Sie eine benutzerdefinierte Funktion

Eine andere Implementierungsmethode besteht darin, eine Funktion anzupassen, um dem Ergebnisarray verschiedene Teile hinzuzufügen, indem Sie zwei Arrays durchlaufen und ihre Schlüssel-Wert-Paare vergleichen.

Codebeispiel:

function array_diff_custom($array1, $array2) {  
    $result = array();  
    foreach ($array1 as $key => $value) {  
        if (!array_key_exists($key, $array2) || ($array2[$key] != $value)) {  
            $result[$key] = $value;  
        }  
    }  
    return $result;  
}  
$array1 = array("name"=>"张三", "age"=>22, "salary"=>3000);  
$array2 = array("name"=>"李四", "age"=>22, "salary"=>4000);  
$result = array_diff_custom($array1, $array2);  
print_r($result);
Nach dem Login kopieren

Das Ausgabeergebnis ist:

Array
(
    [name] => 张三
    [salary] => 3000
)
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Ebenso enthält das Ergebnisarray nur die Schlüssel-Wert-Paare mit den Schlüsselnamen „Name“ und „Gehalt“ in Array 1.

Methode 3: Verwenden Sie die Funktion array_udiff_assoc()

Die Funktion array_udiff_assoc() ähnelt der Funktion array_diff_assoc(), kann jedoch eine benutzerdefinierte Rückruffunktion verwenden, um Schlüssel-Wert-Paare zu vergleichen.

Codebeispiel:

function compareByKeyValue($a, $b) {  
    if ($a === $b) {  
        return 0;  
    }  
    return ($a > $b) ? 1 : -1;  
}  
$array1 = array("name"=>"张三", "age"=>22, "salary"=>3000);  
$array2 = array("name"=>"李四", "age"=>22, "salary"=>4000);  
$result = array_udiff_assoc($array1, $array2, "compareByKeyValue");  
print_r($result);
Nach dem Login kopieren

Das Ausgabeergebnis ist:

Array
(
    [name] => 张三
    [salary] => 3000
)
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Wir definieren eine Rückruffunktion „compareByKeyValue()“, um zu vergleichen, ob Schlüssel-Wert-Paare gleich sind. Indem wir den Namen dieser Funktion als drittes Argument an die Funktion array_udiff_assoc() übergeben, können wir einen ähnlichen Effekt wie bei der Funktion array_diff_assoc() erzielen.

Zusammenfassung

In diesem Artikel werden drei Möglichkeiten vorgestellt, die verschiedenen Teile zweier assoziativer Arrays in PHP zu erhalten: die Verwendung der Funktion array_diff_assoc(), einer benutzerdefinierten Funktion und der Funktion array_udiff_assoc(). Welche Methode Sie wählen, hängt von den spezifischen Bedürfnissen und persönlichen Gewohnheiten ab. In beiden Fällen können Sie die Effizienz und Genauigkeit beim Arbeiten mit assoziativen Arrays verbessern.

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

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage