diff -u b/core/modules/migrate/src/Row.php b/core/modules/migrate/src/Row.php --- b/core/modules/migrate/src/Row.php +++ b/core/modules/migrate/src/Row.php @@ -106,9 +106,13 @@ * Retrieves the values of the source identifiers. * * @return array - * An array containing the values of the source identifiers. + * An array containing the values of the source identifiers. Returns values + * in the same order as defined in $this->sourceIds. */ public function getSourceIdValues() { + // First, return the array of keys properly ordered with + // array_flip(array_keys()). Then, fill in values by merging with + // array_intersect_key(). return array_merge(array_flip(array_keys($this->sourceIds)), array_intersect_key($this->source, $this->sourceIds)); }