for ArrayCollection you cant use [] syntax - you have to use getItemAt to access the item:
priceModel.model.arrayProducts.getItemAt(product_index)
To access a property of the object 'dynamically' you conversely do use []:
['provider'+(idx+1)].value;
So this should work:
priceModel.model.arrayProducts.getItemAt(product_index)['provider'+(idx+1)].value;