Array_Fill_Keys ist eine sehr nützliche Array -Funktion in PHP, um ein Array basierend auf dem angegebenen Schlüsselwert zu füllen. Wenn Sie auf Situationen stoßen, in denen die Ergebnisse und Erwartungen bei der Verwendung dieser Funktion inkonsistent zurückgegangen sind, machen Sie sich keine Sorgen. Ich werde ein bestimmtes Beispiel und eine bestimmte Erklärung verwenden, um die Grundursache des Problems zu finden.
Schauen wir uns zunächst die grundlegende Syntax der Funktion array_fill_keys an:
array_fill_keys(array $keys, mixed $value): array
$ Keys : Ein Array, das ein Array -Schlüssel sein muss.
$ Wert : Der Wert, der jedem Schlüssel entspricht.
Diese Funktion gibt ein neues Array zurück, dessen Schlüssel aus dem Parameter $ keys stammt und alle Werte mit $ Wert gefüllt sind.
Schauen wir uns eine gemeinsame Verwendung an:
<?php
$keys = ['a', 'b', 'c'];
$value = 10;
$result = array_fill_keys($keys, $value);
print_r($result);
?>
Die Ausgabe wird sein:
Array
(
[a] => 10
[b] => 10
[c] => 10
)
Angenommen, Sie verwenden einen ähnlichen Code, das zurückgegebene Ergebnis unterscheidet sich jedoch von dem, was Sie erwarten, es kann mehrere Gründe geben. Schauen wir uns Situationen an, die zu Inkonsistenzen führen können.
Wenn das $ KEYS -Array doppelte Elemente enthält, setzt Array_Fill_keys den entsprechenden Wert des Schlüssels basierend auf der letzten Duplikatschlüssel. Zum Beispiel:
<?php
$keys = ['a', 'b', 'a'];
$value = 10;
$result = array_fill_keys($keys, $value);
print_r($result);
?>
Die Ausgabe wird sein:
Array
(
[a] => 10
[b] => 10
)
Im obigen Code wird 'a' wiederholt zweimal definiert, aber Array_Fill_Keys behält nur einen 'a' -Staste und sein Wert beträgt 10 . Dies erhöht keinen Fehler, aber aufgrund der Einzigartigkeit der Array -Schlüssel werden doppelte Schlüssel dedupliziert.
Wenn das $ KEYS -Array, das Sie an Array_Fill_Keys übergeben, leer ist, ist das zurückgegebene Array ein leeres Array:
<?php
$keys = [];
$value = 10;
$result = array_fill_keys($keys, $value);
print_r($result);
?>
Ausgabe:
Array
(
)
In diesem Fall verursacht die Funktion keine Probleme, das Ergebnis hat jedoch nicht den erwarteten Inhalt.
Array_Fill_Keys Wenn Array_Fill_Keys Schlüssel zum Array verwendet, wirkt sich der Typ des Schlüsselnamens auf das Ergebnis aus. Wenn der Schlüssel beispielsweise ein numerischer Typ ist, behandelt Array_Fill_keys ihn als Ganzzahlschlüssel. Betrachten Sie das folgende Beispiel:
<?php
$keys = [1, 2, 3];
$value = 'hello';
$result = array_fill_keys($keys, $value);
print_r($result);
?>
Ausgabe:
Array
(
[1] => hello
[2] => hello
[3] => hello
)
Wenn sich der Schlüssel vom Typ Zeichenfolge enthält, ändert sich der Index des Arrays.
Überprüfen Sie, ob das Schlüsselarray doppelte Werte hat : Stellen Sie sicher, dass das $ Keys -Array keine doppelten Elemente hat. Sie können Array_unique () verwenden, um es zu deduplizieren oder das Array direkt zu überprüfen.
Bestätigen Sie den Typ der Array -Taste : Wenn Sie möchten, dass der Schlüssel ein String -Typ ist, können Sie sicherstellen, dass die Elemente des $ KEYS -Arrays alle String -Typen oder die Tastetypen für die Gips sind.
Debugging und Ausgabe : Verwenden Sie var_dump () anstelle von print_r (), damit Sie den Schlüsseltyp und die Details sehen können, wodurch potenzielle Probleme identifiziert werden können.
Array_Fill_Keys ist eine sehr nützliche Funktion, aber Sie müssen auf den Schlüsseltyp und die Array -Struktur achten, um inkonsistente Ergebnisse zu vermeiden, die durch Duplikatschlüssel oder Typenfehlanpassungen verursacht werden. Wenn Sie feststellen, dass die Ausgabe nicht den Erwartungen entspricht, können Sie das Problem aus den oben genannten Aspekten beheben.
Hoffe dieser Artikel hilft dir! Wenn Sie weitere Fragen haben, besuchen Sie bitte unsere Website.