Aktueller Standort: Startseite> Neueste Artikel> Gründe, warum der Rückgabewert der Rückruffunktion eine Ganzzahl sein muss

Gründe, warum der Rückgabewert der Rückruffunktion eine Ganzzahl sein muss

M66 2025-06-06

Array_Diff_Uassoc ist eine Array -Vergleichsfunktion in PHP. Es wird normalerweise verwendet, um die Schlüssel und Werte von zwei Arrays zu vergleichen. Es verwendet benutzerdefinierte Rückruffunktionen, um die Schlüssel von Array-Elementen zu vergleichen. Im Gegensatz zur Funktion array_diff_assoc ermöglicht es mit Array_Diff_UassoC Benutzern, Vergleichsregeln anzupassen. In diesem Artikel wird untersucht, warum der Rückgabewert der Rückruffunktion bei Verwendung von Array_Diff_Uassoc eine Ganzzahl sein muss, und das Arbeitsprinzip und die Nutzungsszenarien der Funktion überprüfen.

Einführung in die Funktion array_diff_uassoc

Die Funktion array_diff_uassoc wird verwendet, um Schlüsselwertpaare von zwei Arrays zu vergleichen und diese Schlüsselwertepaare zurückzugeben, die sich im ersten Array, aber nicht in den anderen Arrays befinden. Diese Funktion ähnelt Array_diff_assoc , aber Array_Diff_Uassoc bietet eine zusätzliche Funktion, mit der der Benutzer eine Rückruffunktion angeben kann, um festzustellen, wie Tasten verglichen werden.

Funktionsprototyp:

 array_diff_uassoc(array $array1, array $array2, callable $key_compare_func): array
  • $ array1 : Das erste Array, das verglichen wird.

  • $ array2 : Das zweite Array zu vergleichen.

  • $ key_compare_func : Eine benutzerdefinierte Rückruffunktion, die die Schlüssel von zwei Arrays vergleicht.

Anforderungen für die Rückruffunktion Rückgabewert

Bei Verwendung von Array_Diff_Uassoc muss der von der Rückruffunktion zurückgegebene Wert eine Ganzzahl sein. Dies liegt daran, dass Array_Diff_Uassoc eine Rückruffunktion zum Vergleich von Tasten von zwei Arrays verwendet, und beim Vergleich von Schlüssel ruft die Rückruffunktion auf, um die Reihenfolge jeder Taste zu bestimmen. Der Rückgabewert der Rückruffunktion bestimmt die Beziehung des Schlüssels, und PHP erfordert ein klares Vergleichsergebnis, um die Sortier- und Differenzberechnungen durchzuführen.

Definition des Rückgabewerts der Rückruffunktion:

  • Der Rückgabewert ist eine negative Ganzzahl , die darauf hinweist, dass der erste Schlüssel kleiner als der zweite Schlüssel ist.

  • Der Rückgabewert ist Null , was darauf hinweist, dass die beiden Schlüssel gleich sind.

  • Der Rückgabewert ist eine positive Ganzzahl , die darauf hinweist, dass der erste Schlüssel größer als der zweite Schlüssel ist.

Dieser Rückgabewert ähnelt den häufig verwendeten STRCMP- oder STRCASECMP -Funktionen in PHP, und sie geben auch ganzzahlige Werte zurück, um die Vergleichsergebnisse von zwei Zeichenfolgen darzustellen.

Warum muss eine Ganzzahl zurückgegeben werden?

  1. Vergleichsregeln klaren: Die Funktion von PHP von Array_Diff_Uassoc erfordert den Rückgabewert der Rückruffunktion als Standard zum Vergleich von zwei Schlüssel. Der Ganzzahl -Rückgabewert kann eine "kleine", "gleiche" oder "große" Beziehung genau darstellen. Durch die Rückgabe einer Ganzzahl kann PHP Schlüssel sortieren und vergleichen, wodurch die Unterschiede zwischen zwei Arrays korrekt berechnet werden.

  2. In Übereinstimmung mit dem Sortiermechanismus in PHP: Interne Sortierfunktionen von PHP (wie Usort und UKSort ) müssen die Rückruffunktion ganzzahlige Werte zurückgeben, wodurch die Sortierbeziehung zwischen zwei Elementen dargestellt wird. Daher verwendet die Funktion array_diff_uassoc auch die gleiche Konvention, um Konsistenz und Kompatibilität mit anderen Sortierfunktionen zu gewährleisten.

  3. Vereinfachte Logik: PHP kann die Schlüsselsortierlogik nicht richtig verarbeiten, wenn die Rückruffunktion andere Datenarten zurückgibt (z. B. einen Booleschen Wert oder Zeichenfolge). Integer Return -Werte vereinfachen diesen Prozess und ermöglichen es, dass der interne Vergleichsmechanismus von PHP Array -Unterschiede effektiv behandelt.

Codebeispiel

Hier ist ein einfaches Beispiel für die Verwendung von array_diff_uassoc :

 <?php
// Definieren Sie die Rückruffunktion,Wird verwendet, um die Größe von zwei Schlüssel zu vergleichen
function compare_keys($key1, $key2) {
    return strcmp($key1, $key2);  // verwenden strcmp Ganzzahl zurückgeben
}

// Definieren Sie zwei Arrays
$array1 = ["a" => 1, "b" => 2, "c" => 3];
$array2 = ["b" => 2, "d" => 4];

// verwenden array_diff_uassoc Funktionen vergleichen zwei Arrays
$result = array_diff_uassoc($array1, $array2, 'compare_keys');

// Ausgangsergebnis
print_r($result);
?>

Ausgabe:

 Array
(
    [a] => 1
    [c] => 3
)

Im obigen Beispiel haben wir die STRCMP -Funktion als Rückruffunktion verwendet, um die Schlüssel des Arrays zu vergleichen. Da STRCMP einen Ganzzahlwert zurückgibt, kann der Schlüsselvergleich reibungslos durchgeführt werden und Array_Diff_Uassoc kann die Array -Differenz korrekt berechnen.

Zusammenfassen

Bei Verwendung von Array_Diff_Uassoc muss der Rückgabewert der Rückruffunktion eine Ganzzahl sein, da PHP intern die Größenbeziehung zwischen Schlüssel basierend auf der Ganzzahl bestimmen muss, um die Unterschiede im Array korrekt zu berechnen. Rückkehrzahlen können klare Vergleichsergebnisse liefern und sicherstellen, dass die Funktion ordnungsgemäß funktioniert und mit anderen Sortier- und Vergleichsfunktionen in PHP übereinstimmt.