In PHP wird die Funktion array_combine () verwendet, um zwei Arrays zu einem neuen assoziativen Array zu kombinieren, wobei ein Array als Schlüsselname und das andere Array als entsprechender Wert ist. Die Syntax ist wie folgt:
array_combine(array $keys, array $values): array|false
Wenn die Zusammenführung erfolgreich ist, wird ein Neuarray zurückgegeben. Wenn es fehlschlägt, wird False zurückgegeben.
Warum gibt Array_combine () manchmal falsch zurück? Dieser Artikel wird seine möglichen Ursachen im Detail analysieren.
Die beiden Array -Längen von Array_combine () müssen gleich sein. Wenn die Anzahl der Elemente im Schlüsselarray und im Wert -Array unterschiedlich ist, gibt die Funktion direkt falsch zurück.
Beispielcode:
$keys = ['a', 'b', 'c'];
$values = [1, 2];
$result = array_combine($keys, $values);
var_dump($result); // bool(false)
Hier hat $ Keys 3 Elemente, während $ Values nur 2 Elemente hat, was dazu führt, dass die Funktion fehlschlägt.
Wenn einer der beiden eingelassenen Arrays leer ist, gibt Array_combine () auch false zurück.
Beispiel:
$keys = [];
$values = [1, 2, 3];
$result = array_combine($keys, $values);
var_dump($result); // bool(false)
Hier ist $ Keys ein leeres Array, also wird falsch zurückgegeben.
Obwohl Array_combine () keine Array -Elementtypen ausschließlich benötigt, sollten die Elemente des Schlüsselarrays gültige Array -Tasten (Zeichenfolgen oder ganze Zahlen) sein. Wenn es im Schlüsselarray illegale Schlüssel gibt, stimmt das Zusammenführungsergebnis nicht mit den Erwartungen überein, aber im Allgemeinen wird falsch nicht zurückgegeben. Wenn das Array selbst illegal ist oder die Struktur beschädigt ist, kann auch eine Ausnahme verursacht werden.
Zum Beispiel:
$keys = [null, true, 2]; // null Wird als Schlüssel in eine leere Zeichenfolge umgewandelt
$values = ['x', 'y', 'z'];
$result = array_combine($keys, $values);
var_dump($result);
Dies kehrt normalerweise nicht falsch zurück, aber die Umwandlung der Schlüssel kann das Ergebnis nicht wie erwartet machen.
Wenn der übergebene Parameter kein Array ist, wird ein Fehler ausgelöst oder FALSE wird zurückgegeben. Stellen Sie sicher, dass beide Parameter Array -Typ sind.
In einigen sehr alten Versionen von PHP kann Array_combine () unterschiedliche Verhaltensweisen haben, aber da PHP 5.0.0 jedoch relativ stabil wird.
Stellen Sie sicher, dass die beiden Arrays konsistent sind und nicht leer sind . Dies ist der häufigste Grund, warum Falsch zurückgegeben wird.
Überprüfen Sie den Parametertyp und bestätigen Sie, dass das Array eingegeben wird.
Debug -Informationen drucken , z. B. die Verwendung von count (), um die Array -Länge anzuzeigen.
Verwenden Sie den Fehlererfassungsmechanismus, um unberechtigte Ausnahmen zu vermeiden.
$keys = ['name', 'age', 'city'];
$values = ['Alice', 30, 'Beijing'];
$result = array_combine($keys, $values);
if ($result === false) {
echo "Merge fehlgeschlagen,Es kann sein, dass die Arraylänge inkonsistent oder das Array leer ist。";
} else {
print_r($result);
}
Ausgangsergebnis:
Array
(
[name] => Alice
[age] => 30
[city] => Beijing
)
Durch das Verständnis der Parameterbeschränkungen und häufigen Probleme von Array_combine () kann es die Rückgabe von FALSE effektiv vermeiden und die Code -Robustheit sicherstellen.
Verwandte Tags:
array_combine