Ist die Reihenfolge der Elemente gleich, nachdem das Array durch array_keys () und array_values () aufgeteilt wurde? [Duplikat]

Diese Frage hat hier bereits eine Antwort:

Entspricht die Reihenfolge der von array_keys zurückgegebenen Schlüssel der Reihenfolge im Eingabearray? 2 Antworten

Ich habe die Manualseiten von beiden durchgesehenarray_keys undarray_values. Keiner von beiden sagte etwas darüber aus, ob sie die Elementreihenfolge des ursprünglichen Arrays einhalten. Sie versprechen lediglich, dass sie alle Schlüssel oder Werte des ursprünglichen Arrays zurückgeben. Aber können wir absolut sicher sein, dass die Reihenfolge der Elemente auch genau der des ursprünglichen Arrays entspricht? Egal welches Array es ist?

Ich frage das, weil ich das habe:

$record = array('name' => 'Lisa', 'age' => 16, 'gender' => 'female');

$fields = array_keys($record);
$values = array_values($record);

$sql = "INSERT INTO {$this -> table} (".implode(', ', $fields).") VALUES (".implode(', ', array_fill(0, count($fields), '?')).")";
$sth = $this -> dbh -> prepare($sql);
$sth -> execute($values);

Ich kann zwar benannte Parameter verwenden, dies würde jedoch etwas mehr Codierung kosten. Daher bevorzuge ich diese Methode, bei der die Elemente von $ fields und $ values in entsprechenden Paaren vorliegen. Vorzugsweise sind sie in genau derselben Reihenfolge wie die des ursprünglichen Array-Datensatzes $.

Irgendeine Idee?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage