# Ignition Perspective Combine Array Properties

**URL:** <https://forum.inductiveautomation.com/t/ignition-perspective-combine-array-properties/97102>\
**Category:** Ignition\
**Tags:** perspective, ignition81\
**Created:** [October 10, 2024, 6:28pm UTC](https://forum.inductiveautomation.com/t/ignition-perspective-combine-array-properties/97102 "2024-10-10T18:28:14Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![Mike\_Le](https://avatars.discourse-cdn.com/v4/letter/m/3ec8ea/32.png) [@Mike\_Le](https://forum.inductiveautomation.com/u/Mike_Le)\
**Post date:** [October 10, 2024, 6:28pm UTC](https://forum.inductiveautomation.com/t/ignition-perspective-combine-array-properties/97102/1 "2024-10-10T18:28:14Z")

</div>

I have 3 array properties of varying length but all of the elements inside are of the same type. How do I combine all 3 into 1 large array property of 16 length?

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/5/c/5cec7b904ce15162bb1615edff2e4a82c765c01a.png)

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [October 10, 2024, 6:42pm UTC](https://forum.inductiveautomation.com/t/ignition-perspective-combine-array-properties/97102/2 "2024-10-10T18:42:56Z")

</div>

I would use my Integration Toolkit's `flatten()` function, like so:

```python
flatten(
	asList(
		{view.custom.CUB_Instances},
		{view.custom.PDC_Instances},
		{view.custom.USS_Instances}
	)
)

```

---

<div class="post-metadata">

**Author:** ![Mike\_Le](https://avatars.discourse-cdn.com/v4/letter/m/3ec8ea/32.png) [@Mike\_Le](https://forum.inductiveautomation.com/u/Mike_Le)\
**Post date:** [October 10, 2024, 6:44pm UTC](https://forum.inductiveautomation.com/t/ignition-perspective-combine-array-properties/97102/3 "2024-10-10T18:44:42Z")

</div>

> [@pturmel](#):
>
> ntegration

Would this work if I have arrays inside of arrays?

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [October 10, 2024, 6:47pm UTC](https://forum.inductiveautomation.com/t/ignition-perspective-combine-array-properties/97102/4 "2024-10-10T18:47:47Z")

</div>

It isn't recursive. The `flatten()` function converts a list-of-lists into a list, without going deeper.

Only jython can handle recursion.

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [October 10, 2024, 11:06pm UTC](https://forum.inductiveautomation.com/t/ignition-perspective-combine-array-properties/97102/5 "2024-10-10T23:06:58Z")

</div>

I'm pretty sure the script transform to do this would literally just be:

```python
return self.custom.CUB_Instances + self.custom.PDC_Instances + self.custom.USS_Instances

```

At least, I _think_ that would work.

I wonder if it's worth overloading the expression language `+` operator to do concatenation of structures like this, only for document/JSON-like things. Probably not worth the risk of confusion, but maybe...

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [October 10, 2024, 11:54pm UTC](https://forum.inductiveautomation.com/t/ignition-perspective-combine-array-properties/97102/6 "2024-10-10T23:54:22Z")

</div>

> [@paul-griffith](#):
>
> maybe

Seems an elegant solution. I like elegant solutions.

---

<div class="post-metadata">

**Author:** ![Mike\_Le](https://avatars.discourse-cdn.com/v4/letter/m/3ec8ea/32.png) [@Mike\_Le](https://forum.inductiveautomation.com/u/Mike_Le)\
**Post date:** [January 27, 2026, 8:10pm UTC](https://forum.inductiveautomation.com/t/ignition-perspective-combine-array-properties/97102/7 "2026-01-27T20:10:36Z")

</div>

Late response, but is there a way to combine arrays via expression language rather than transforms?

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [January 27, 2026, 8:12pm UTC](https://forum.inductiveautomation.com/t/ignition-perspective-combine-array-properties/97102/8 "2026-01-27T20:12:51Z")

</div>

Yes, if you install my Integration Toolkit. The [asPairs()](https://www.automation-pros.com/toolkit/doc/iteration.html#aspairs) function will blindly concatenate arrays (even if they aren't lists of pairs).
