Skip to main content

Mapping arrays

An array is a special type of item. A simple array contains one or more text values. A complex array contains one or more collections of the same type. An example of a complex array is the email attachment. The Watch emails module returns an array of attachments for every email. Every attachment represents a collection that may contain a name, content, size, etc.

Mapping an array's first element

If you map the array's Recipient name item, it will appear in the field like this:

Mapping_array_first_element.png

The number between the square brackets is an index that determines which element of the array will be used. Leaving it empty defaults to the first element.

Mapping an array's nth element

If you wish to access another element, enter or map a value between the square brackets. In the below example, enter 2 to select the second element.

Mapping_array_nth_element.png

Mapping an array's element with a given key

Some arrays contain several collections with key and value items. These are typically various metadata, attributes, etc.

The following example shows the output of the WooCommerce > Get a product module that contains the item Meta data, which is an array of collections. Each collection contains the key item Meta Data ID and the value item Value:

Mapping_Key_value.png

The typical requirement is to lookup an element by its given key value and to obtain the corresponding value from the value item. This can be achieved with a formula employing a combination of themap ()andget ()functions.

The following example shows how to obtain the value of the Value item of the element with key Meta data ID item value equal to 20642

Mapping_value_variable.png

The result of the formula will be "no".

The detailed breakdown of the formula follows:

  1. The 1st parameter of the map() function is the whole array item.

  2. The 2nd parameter is the raw name of the value item. To obtain the raw name, hover the mouse cursor over the item in the mapping panel:

    Mapping_value.png

    Important

    All parameters are case sensitive. Even though in this particular example the item's label differs from its raw name only in capitalization, it is necessary to use the raw name, which is all lowercase value in contrast to the label Value

  3. The 3rd parameter is the raw name of the key item:

    Mapping_id.png
  4. The 4th parameter is the given key value.

Because the map() function returns an array (as there could be more elements with the given key value), it is necessary to apply the get() function to get its first element:

  1. The 1st parameter of the get() function is the result of the map() function.

  2. The 2nd parameter is the element's index - one.

See also our Extract an item and/or its value from an array of collections video tutorial.

Converting elements to a series of bundles

Arrays can be converted to a series of bundles using the Iterator module:

Mapping_iterator.png

Important

The outputs from modules wrapped between an Iterator and Aggregator are not accessible beyond the Aggregator module.