Aktueller Standort: Startseite> Neueste Artikel> Sortieren des Arrays vor dem Vergleich mit ustort ()

Sortieren des Arrays vor dem Vergleich mit ustort ()

M66 2025-06-06

In PHP sind usort () und array_diff_uassoc () zwei häufig verwendete Array -Verarbeitungsfunktionen. Usort () wird verwendet, um Arrays zu sortieren, während Array_Diff_Uassoc () verwendet wird, um Schlüsselwerte von zwei Arrays zu vergleichen und ihre Unterschiede zurückzugeben. Die Kombination dieser beiden Funktionen kann komplexere Array -Operationen erzielen.

In diesem Artikel wird ein praktisches Beispiel verwendet, um zu zeigen, wie Arrays mit usort () sortiert werden, und dann für Array -Vergleiche Array_Diff_Uassoc () verwendet.

1. Verwenden Sie usort () , um das Array zu sortieren

Lassen Sie uns zunächst die grundlegende Verwendung von usort () verstehen. Usort () wird verwendet, um Arrays nach benutzerdefinierten Vergleichsfunktionen zu sortieren. Angenommen, wir haben ein Array, das Zeichenfolgen mit Zahlen enthält, und wir möchten nach der Größe der Zahlen sortieren.

 <?php
// Definieren Sie ein Array mit Zahlen
$array = [
    'apple' => '10',
    'banana' => '2',
    'cherry' => '5',
    'date' => '1',
];

// Benutzerdefinierte Vergleichsfunktionen,Wird verwendet, um nach Zahlengröße zu sortieren
function compare_numbers($a, $b) {
    return $a - $b;
}

// verwenden usort() Sortieren Sie Array -Werte
usort($array, 'compare_numbers');

// Drucken sortiertes Array
print_r($array);
?>

Ausgabe:

 Array
(
    [0] => 1
    [1] => 2
    [2] => 5
    [3] => 10
)

In diesem Beispiel verwendet usort () eine benutzerdefinierte Funktion compare_numbers (), um die numerischen Werte des Arrays zu sortieren.

2. Verwenden Sie Array_Diff_Uassoc () für den Array -Vergleich

Array_Diff_Uassoc () wird verwendet, um die Schlüsselwerte von zwei Arrays zu vergleichen, die im ersten Array vorhanden sind, aber im zweiten Array nicht existieren. Im Gegensatz zu Array_Diff_assoc () können Sie mit Array_Diff_Uassoc () benutzerdefinierte Vergleichsfunktionen für Schlüsselwert verwenden.

Angenommen, wir haben zwei Arrays und möchten ihre wichtigsten Wertunterschiede vergleichen. Wir können array_diff_uassoc () verwenden, um diese Funktion zu implementieren.

 <?php
// Definieren Sie zwei Arrays
$array1 = [
    'apple' => 10,
    'banana' => 2,
    'cherry' => 5,
    'date' => 1,
];

$array2 = [
    'apple' => 10,
    'banana' => 3,
    'cherry' => 5,
    'date' => 0,
];

// Benutzerdefinierte Vergleichsfunktionen,Wird verwendet, um Schlüsselwerte zu vergleichen
function compare_keys($a, $b) {
    return strcmp($a, $b);
}

// verwenden array_diff_uassoc() Vergleichen Sie Array -Schlüsselwerte
$result = array_diff_uassoc($array1, $array2, 'compare_keys');

// Druckergebnisse
print_r($result);
?>

Ausgabe:

 Array
(
    [banana] => 2
    [date] => 1
)

In diesem Beispiel vergleicht Array_diff_uassoc () die Schlüsselwertunterschiede in Array1 und Array2 . Da Banane und Datum in den beiden Arrays unterschiedliche Schlüsselwerte haben, werden sie zurückgegeben.

3. Kombinieren Sie usort () und array_diff_uassoc ()

Wir können usort () und array_diff_uassoc () kombinieren, usort () verwenden, um das Array zu sortieren, und es dann mit Array_Diff_Uassoc () vergleichen, um den Unterschied zwischen den sortierten Arrays zu erhalten.

Angenommen, wir sortieren zuerst das Array und vergleichen dann die beiden sortierten Arrays:

 <?php
// Definieren Sie zwei Arrays
$array1 = [
    'apple' => 10,
    'banana' => 2,
    'cherry' => 5,
    'date' => 1,
];

$array2 = [
    'apple' => 10,
    'banana' => 3,
    'cherry' => 5,
    'date' => 0,
];

// Benutzerdefinierte Vergleichsfunktionen,Wird verwendet, um nach Zahlengröße zu sortieren
function compare_numbers($a, $b) {
    return $a - $b;
}

// Kombinationsarray1und Array2Sortieren Sie die Werte
usort($array1, 'compare_numbers');
usort($array2, 'compare_numbers');

// Benutzerdefinierte Vergleichsfunktionen,Wird verwendet, um Schlüsselwerte zu vergleichen
function compare_keys($a, $b) {
    return strcmp($a, $b);
}

// verwenden array_diff_uassoc() Vergleich sortierter Arrays
$result = array_diff_uassoc($array1, $array2, 'compare_keys');

// Druckergebnisse
print_r($result);
?>

Ausgabe:

 Array
(
    [banana] => 2
    [date] => 1
)

Verwenden Sie in diesem Beispiel zuerst usort () , um die Werte des Arrays zu sortieren und dann mit Array_Diff_Uassoc () das sortierte Array zu vergleichen, um die Differenz der Schlüsselwerte zu ermitteln.

abschließend

Durch Kombinieren von usort () und array_diff_uassoc () können wir die Arrays sortieren und die Unterschiede vergleichen. Dieser Ansatz ist sehr nützlich für die Handhabung von Arrays, die sortiert und mit Schlüsselwerten verglichen werden müssen. Mit usort () können wir Arrays nach bestimmten Regeln sortieren, während Array_Diff_Uassoc () es uns ermöglicht, die Schlüsselwertunterschiede zwischen zwei Arrays leicht zu ermitteln.