Czy elementy porządkują tę samą tablicę po podziale za pomocą array_keys () i array_values ()? [duplikować]
To pytanie ma już tutaj odpowiedź:
Czy kolejność zwracanych kluczy z array_keys jest taka sama jak kolejność w tablicy wejściowej? 2 odpowiedziPrzejrzałam strony podręcznika obuarray_keys iarray_values. Żadne z nich nie powiedziało nic o tym, czy honorują kolejność elementów oryginalnej tablicy. Obiecują tylko, że zwrócą wszystkie klucze lub wartości z oryginalnej tablicy. Ale czy możemy być absolutnie pewni, że kolejność elementów będzie dokładnie taka sama jak w oryginalnej tablicy? Bez względu na to, jaką macie tablicę?
Pytam to, ponieważ mam to:
$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);
Chociaż mogę używać nazwanych parametrów, ale będzie to kosztować nieco więcej kodowania, więc wolę ten sposób, który wymaga, aby elementy $ pól i $ wartości były w odpowiednich parach, najlepiej byłyby w dokładnie takiej samej kolejności, jak w oryginalnej tablicy $ record.
Dowolny pomysł?