Multiple values in creating a new field instance
Hopefully this will prove useful: To create a field that allows multiple values, you set the cardinality to -1 when using field_create_field.  Then all instances will allow multiple values (provided the widget supports that).

Example:

field_create_field([
  'cardinality' =&gt; -1,
  'field_name' =&gt; 'field_unlimited',
  'type' =&gt; 'special_content',
  'entity_types' =&gt; ['node'],
]);