Aktueller Standort: Startseite> Neueste Artikel> Der Effekt von array_change_key_case () wird vor oder nach Array_Filter () verwendet

Der Effekt von array_change_key_case () wird vor oder nach Array_Filter () verwendet

M66 2025-04-24

Bei der Verarbeitung von Arrays in PHP werden häufig zwei sehr praktische Funktionen verwendet: Array_Change_key_Case () und Array_filter () . Diese beiden Funktionen werden für die Summe verwendet. Viele Entwickler fragen sich möglicherweise bei der Verwendung dieser beiden Funktionen: Ist die Reihenfolge der Anrufe dieser beiden Funktionen wichtig? Wird es die endgültigen Verarbeitungsergebnisse beeinflussen?

Dieser Artikel beantwortet diese Frage durch Analyse und Beispiele.

Eine, zwei Funktionen Einführung

1. Array_Change_key_Case ()

Diese Funktion wird verwendet, um die Schlüsselnamen eines Arrays in alle Kleinbuchstaben oder Großbuchstaben umzuwandeln und wie folgt verwendet:

 array_change_key_case(array $array, int $case = CASE_LOWER): array
  • $ case kann case_lower (Standard) oder case_upper sein.

Beispiel:

 $arr = ['Name' => 'Tom', 'Age' => 25];
print_r(array_change_key_case($arr, CASE_LOWER));
// Ausgabe:Array ( [name] => Tom [age] => 25 )

2. Array_Filter ()

Diese Funktion wird verwendet, um Elemente in einem Array zu filtern, und Sie können die Rückruffunktion anpassen, um zu entscheiden, welche Elemente beibehalten werden sollen.

 array_filter(array $array, ?callable $callback = null, int $mode = 0): array

Standardmäßig entfernt es Elemente mit "falschen Werten" wie Falsch , Null , 0 , leere Zeichenfolgen usw.

Beispiel:

 $arr = ['name' => 'Tom', 'age' => 0, 'email' => ''];
print_r(array_filter($arr));
// Ausgabe:Array ( [name] => Tom )

2. Unterschiedlich sind die Ergebnisse unterschiedlich?

Ja, die Bestellung kann die Ergebnisse beeinflussen , abhängig von der spezifischen Array -Struktur und dem Zweck, mit dem Sie sich befassen.

Fall 1: Array_Change_key_Case () wird nach Array_Filter () aufgerufen

In diesem Fall wird der Schlüsselfall zuerst konvertiert und dann wird der Wert gefiltert.

 $data = ['Name' => 'Tom', 'Age' => null, 'EMAIL' => ''];
$result = array_filter(array_change_key_case($data));
print_r($result);

Ausgabe:

 Array ( [name] => Tom )

veranschaulichen:

  • Schlüssel sind alle Kleinbuchstaben: Name , Alter , E -Mail

  • Null und leere Saiten werden entfernt

Fall 2: Nach Array_Filter () wird Array_Change_key_Case () aufgerufen

 $data = ['Name' => 'Tom', 'Age' => null, 'EMAIL' => ''];
$result = array_change_key_case(array_filter($data));
print_r($result);

Ausgabe:

 Array ( [name] => Tom )

Es sieht so aus, als ob die Ausgabe gleich ist, aber wenn Sie Array_filter () mit der Rückruffunktion verwenden, kann der Unterschied herauskommen.

Komplexere Beispiele:

 $data = ['Name' => 'Tom', 'Age' => 0, 'EMAIL' => 'tom@m66.net'];

$result1 = array_filter(array_change_key_case($data), function($val) {
    return !empty($val);
});

$result2 = array_change_key_case(array_filter($data, function($val) {
    return !empty($val);
}));

print_r($result1);
print_r($result2);

Ausgabe:

 $result1:
Array ( [name] => Tom [email] => tom@m66.net )

$result2:
Array ( [name] => Tom [email] => tom@m66.net )

Die Ergebnisse sind zu diesem Zeitpunkt nach wie vor gleich, aber wenn Sie aufgrund des oberen und unteren Falles des Schlüsseldamens eine weitere logische Verarbeitung durchführen müssen, kann sich die Reihenfolge auf Ihre Beurteilungslogik auswirken.

3.. Wie kann man die Reihenfolge in der tatsächlichen Entwicklung auswählen?

Es wird empfohlen, auf der Grundlage der Bedürfnisse zu urteilen:

  • Wenn Sie das Format des Schlüssels einheitlich verarbeiten möchten (z. B. alle Kleinbuchstaben, um die Verwirrung von Fall zu vermeiden), können Sie zuerst Array_Change_key_case () verwenden.

  • Wenn Sie der Filterlogik der Array -Werte mehr Aufmerksamkeit schenken und sich nicht um das Format der Schlüsselnamen kümmern, spielt es keine Rolle, ob Sie zuerst Array_Filter () verwenden.

  • Wenn beide verwendet werden müssen, ist es am besten, die Reihenfolge der Sequenz klar zu definieren, um unsichere logische Fehler zu vermeiden.