Одинаков ли порядок элементов после разделения массива на array_keys () и array_values ()? [Дубликат]

На этот вопрос уже есть ответ здесь:

Порядок ключей, возвращаемых из array_keys, совпадает с порядком во входном массиве? 2 ответа

Я просмотрел справочные страницы обоихarray_keys а такжеarray_values, Никто из них не сказал ничего о том, соблюдают ли они порядок элементов исходного массива. Все, что они обещают, они вернут все ключи или значения из исходного массива. Но можем ли мы быть абсолютно уверены, что порядок элементов также будет точно таким же, как у исходного массива? Неважно, что это за массив?

Я спрашиваю это потому, что у меня есть это:

$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);

Хотя я могу использовать именованные параметры, но это будет стоить немного больше кода, поэтому я предпочитаю этот способ, который требует, чтобы элементы $ fields и $ values находились в соответствующих парах, предпочтительно они были бы в том же порядке, что и исходная запись массива $.

Любая идея?

Ответы на вопрос(1)

Ваш ответ на вопрос