I am not convinced your PR approach is the best. 9 times out of ten it just means extra work for non-array dirty checking. I think the better approach is for the caller to declare that the incoming values are arrays.