Os elementos ordenam o mesmo após a matriz ser dividida por array_keys () e array_values ()? [duplicado]

Esta pergunta já tem uma resposta aqui:

A ordem das chaves retornadas de array_keys é igual à ordem na matriz de entrada? 2 respostas

Examinei as páginas de manual de ambosarray_keys earray_values. Nenhum dos dois disse nada sobre se eles respeitam a ordem dos elementos da matriz original. Tudo o que prometem é que retornarão todas as chaves ou valores da matriz original. Mas podemos ter certeza absoluta de que a ordem dos elementos também será exatamente a mesma da matriz original? Não importa que matriz seja?

Eu pergunto isso é porque eu tenho isso:

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

Embora eu possa usar parâmetros nomeados, mas custaria um pouco mais de codificação, prefiro que os elementos dos campos $ e $ valores estejam em pares correspondentes, de preferência eles estariam exatamente na mesma ordem que o registro $ da matriz original.

Qualquer ideia?

questionAnswers(1)

yourAnswerToTheQuestion