$oldToNewPositions * @param T[] $argOrParams * @return T[] */ public function sortArgsByExpectedParamOrder(array $argOrParams, array $oldToNewPositions) : array { $newArgsOrParams = []; foreach (\array_keys($argOrParams) as $position) { \assert(\is_int($position)); $newPosition = $oldToNewPositions[$position] ?? null; if ($newPosition === null) { continue; } $newArgsOrParams[$position] = $argOrParams[$newPosition]; } return $newArgsOrParams; } }