> For the complete documentation index, see [llms.txt](https://boxlang.ortusbooks.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://boxlang.ortusbooks.com/boxlang-language/reference/built-in-functions/array/arraymerge.md).

# ArrayMerge

This function creates a new array with data from the two passed arrays.

To add all the data from one array into another without creating a new array see the built in function ArrayAppend(arr1, arr2, true).

## Method Signature

```
ArrayMerge(array1=[array], array2=[array], leaveIndex=[boolean])
```

### Arguments

| Argument     | Type      | Required | Description                                                                                            | Default |
| ------------ | --------- | -------- | ------------------------------------------------------------------------------------------------------ | ------- |
| `array1`     | `array`   | `true`   | The first array to merge                                                                               |         |
| `array2`     | `array`   | `true`   | The second array to merge                                                                              |         |
| `leaveIndex` | `boolean` | `true`   | Set to true maintain value indexes - if two values have the same index it will keep values from array1 | `false` |

## Examples

### Standard function syntax

Merge two arrays resulting in a single re-indexed array. All elements of both arrays are preserved.

[Run Example](https://try.boxlang.io/?code=eJxVjjEOwjAMRWdyiihTK%2FUGFSsTiIUNdTDgppFKbTkOqLcnSWFAXp7l52%2BPkoLavb1as3PAPKPrMt1gyVWRBBaPzgy9eaH3AWPR80DpCUrVuYMI6YYkSwVGiF9gRok1YUKYdVoPRI8Sk9dgPaF4bOxYPuns70bbm7cExXNSTtps6oWOIebmL6Yt7gf8AT2c)

```java
fruit = [ 
	"apple",
	"banana",
	"orange"
];
veggies = [
	"tomato",
	"carrot",
	"corn",
	"peas",
	"peppers"
];
healthyFoods = arrayMerge( fruit, veggies );
writeOutput( arrayToList( healthyFoods ) );

```

Result: apple,banana,orange,tomato,carrot,corn,peas,peppers

### Member function syntax

Merge two arrays resulting in a single re-indexed array. All elements of both arrays are preserved.

[Run Example](https://try.boxlang.io/?code=eJxVjbEKAjEMQGf7FaXTHYg%2FcLg6CS5u4hA11yvcNSFNlft726qDZHkhj5dRclC7txdrNg6YZ3TbQjeIZRqSQPTozHUwT%2FQ%2BYKp6OSgtoNScO4iQfpAkNmCE9AVmlNQKE8Ks03ogetTMWL%2FvFhSPnf3V%2B8G8JCiesnLWzpY2rGc6hlSWv0Bf3TeMSzt%2F)

```java
fruit = [ 
	"apple",
	"banana",
	"orange"
];
veggies = [
	"tomato",
	"carrot",
	"corn",
	"peas",
	"peppers"
];
healthyFoods = fruit.merge( veggies );
writeOutput( arrayToList( healthyFoods ) );

```

Result: apple,banana,orange,tomato,carrot,corn,peas,peppers

### Example where leaveIndex parameter is true

Merge two arrays resulting in a single re-indexed array. Where the both arrays have elements in the same position, only values from the first array are included in the result. Valid using standard or member function syntax.

Note how the first three elements of the veggies array are not merged because the fruit array already has values for elements 1-3.

[Run Example](https://try.boxlang.io/?code=eJxVjjsOwjAMhmdyCitTK%2FUGFSsTiIUNdTDgppFKHTkOqLcnSbsgL5%2Fl%2F%2BFRklc4wh3MwWIIM9ku0wOXPBVZcHFkzdCbDznnKRZ5Pii%2FUblqnijCuiHLUiEQxh1CIIk1YSKcdVpPzK8Sk224XkgcNTCWTzrYOzpQSQRtb77ila5JQ9JmM9z47GNe%2FsLaov0BdY4%2FqA%3D%3D)

```java
fruit = [ 
	"apple",
	"banana",
	"orange"
];
veggies = [
	"tomato",
	"carrot",
	"corn",
	"peas",
	"peppers"
];
healthyFoods = arrayMerge( fruit, veggies, true );
writeOutput( arrayToList( healthyFoods ) );

```

Result: apple,banana,orange,peas,peppers

### Additional Examples

```java
aNames = array( 10412, 42, 33, 2, 999, 12769, 888 );
aNames2 = array( 33, "b", "c", "d", "e", "f", "g" );
dump( arrayMerge( aNames, aNames2 ) );
// member function
dump( aNames.merge( aNames2 ) );
dump( aNames.merge( aNames2, true ) );

```

## Related

* [ArrayAppend](/boxlang-language/reference/built-in-functions/array/arrayappend.md)
* [ArrayAvg](/boxlang-language/reference/built-in-functions/array/arrayavg.md)
* [ArrayChunk](/boxlang-language/reference/built-in-functions/array/arraychunk.md)
* [ArrayClear](/boxlang-language/reference/built-in-functions/array/arrayclear.md)
* [ArrayContains](/boxlang-language/reference/built-in-functions/array/arraycontains.md)
* [ArrayContainsNoCase](/boxlang-language/reference/built-in-functions/array/arraycontainsnocase.md)
* [ArrayDelete](/boxlang-language/reference/built-in-functions/array/arraydelete.md)
* [ArrayDeleteAt](/boxlang-language/reference/built-in-functions/array/arraydeleteat.md)
* [ArrayDeleteNoCase](/boxlang-language/reference/built-in-functions/array/arraydeletenocase.md)
* [ArrayEach](/boxlang-language/reference/built-in-functions/array/arrayeach.md)
* [ArrayEvery](/boxlang-language/reference/built-in-functions/array/arrayevery.md)
* [ArrayFilter](/boxlang-language/reference/built-in-functions/array/arrayfilter.md)
* [ArrayFind](/boxlang-language/reference/built-in-functions/array/arrayfind.md)
* [ArrayFindAll](/boxlang-language/reference/built-in-functions/array/arrayfindall.md)
* [ArrayFindAllNoCase](/boxlang-language/reference/built-in-functions/array/arrayfindallnocase.md)
* [ArrayFindFirst](/boxlang-language/reference/built-in-functions/array/arrayfindfirst.md)
* [ArrayFindNoCase](/boxlang-language/reference/built-in-functions/array/arrayfindnocase.md)
* [ArrayFirst](/boxlang-language/reference/built-in-functions/array/arrayfirst.md)
* [ArrayFlatMap](/boxlang-language/reference/built-in-functions/array/arrayflatmap.md)
* [ArrayFlatten](/boxlang-language/reference/built-in-functions/array/arrayflatten.md)
* [ArrayGetMetadata](/boxlang-language/reference/built-in-functions/array/arraygetmetadata.md)
* [ArrayGroupBy](/boxlang-language/reference/built-in-functions/array/arraygroupby.md)
* [ArrayIndexExists](/boxlang-language/reference/built-in-functions/array/arrayindexexists.md)
* [ArrayInsertAt](/boxlang-language/reference/built-in-functions/array/arrayinsertat.md)
* [ArrayIsDefined](/boxlang-language/reference/built-in-functions/array/arrayisdefined.md)
* [ArrayLast](/boxlang-language/reference/built-in-functions/array/arraylast.md)
* [ArrayMap](/boxlang-language/reference/built-in-functions/array/arraymap.md)
* [ArrayMax](/boxlang-language/reference/built-in-functions/array/arraymax.md)
* [ArrayMedian](/boxlang-language/reference/built-in-functions/array/arraymedian.md)
* [ArrayMid](/boxlang-language/reference/built-in-functions/array/arraymid.md)
* [ArrayMin](/boxlang-language/reference/built-in-functions/array/arraymin.md)
* [ArrayNew](/boxlang-language/reference/built-in-functions/array/arraynew.md)
* [ArrayNone](/boxlang-language/reference/built-in-functions/array/arraynone.md)
* [ArrayPop](/boxlang-language/reference/built-in-functions/array/arraypop.md)
* [ArrayPrepend](/boxlang-language/reference/built-in-functions/array/arrayprepend.md)
* [ArrayPush](/boxlang-language/reference/built-in-functions/array/arraypush.md)
* [ArrayRange](/boxlang-language/reference/built-in-functions/array/arrayrange.md)
* [ArrayReduce](/boxlang-language/reference/built-in-functions/array/arrayreduce.md)
* [ArrayReduceRight](/boxlang-language/reference/built-in-functions/array/arrayreduceright.md)
* [ArrayReject](/boxlang-language/reference/built-in-functions/array/arrayreject.md)
* [ArrayResize](/boxlang-language/reference/built-in-functions/array/arrayresize.md)
* [ArrayReverse](/boxlang-language/reference/built-in-functions/array/arrayreverse.md)
* [ArraySet](/boxlang-language/reference/built-in-functions/array/arrayset.md)
* [ArrayShift](/boxlang-language/reference/built-in-functions/array/arrayshift.md)
* [ArraySlice](/boxlang-language/reference/built-in-functions/array/arrayslice.md)
* [ArraySome](/boxlang-language/reference/built-in-functions/array/arraysome.md)
* [ArraySort](/boxlang-language/reference/built-in-functions/array/arraysort.md)
* [ArraySplice](/boxlang-language/reference/built-in-functions/array/arraysplice.md)
* [ArraySum](/boxlang-language/reference/built-in-functions/array/arraysum.md)
* [ArraySwap](/boxlang-language/reference/built-in-functions/array/arrayswap.md)
* [ArrayToList](/boxlang-language/reference/built-in-functions/array/arraytolist.md)
* [ArrayToStruct](/boxlang-language/reference/built-in-functions/array/arraytostruct.md)
* [ArrayTranspose](/boxlang-language/reference/built-in-functions/array/arraytranspose.md)
* [ArrayUnique](/boxlang-language/reference/built-in-functions/array/arrayunique.md)
* [ArrayUnshift](/boxlang-language/reference/built-in-functions/array/arrayunshift.md)
* [ArrayZip](/boxlang-language/reference/built-in-functions/array/arrayzip.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://boxlang.ortusbooks.com/boxlang-language/reference/built-in-functions/array/arraymerge.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
