PHP – Flatten or Merge a Multidimensional Array

Here’s a code snippet to flatten or merge a multidimensional array. This is useful when we need to find if a value exists in any of the nodes in a multidimensional array.

I use this function in my Paid Content Packages WordPress Plugin to find out if any of the packages have any page or post assigned.

PHP Function:

function flattenArray($arrayToFlatten) {

	$flatArray = array();

	foreach($arrayToFlatten as $element) {
		if (is_array($element)) {
			$flatArray = array_merge($flatArray, flattenArray($element));
		} else {
			$flatArray[] = $element;
		}
	}

	return $flatArray;
}

Example:

$array = array(
	'parent-one' => 'parent-one',
	'parent-two' => 'parent-two',
	'parent-three' => array(
		'child-one' => 'child-one',
		'child-two' => 'child-two',
		'child-three' => array(
			'kid-one' => 'kid-one',
			'kid-two' => 'kid-two',
		),
	),
);
print_r(flattenArray($array));

This code will print the following output.

Array
(
    [0] => parent-one
    [1] => parent-two
    [2] => child-one
    [3] => child-two
    [4] => kid-one
    [5] => kid-two
)
contact us

There are shorter versions of this function available, however, I like to use code that is clear and easy to read. Hope this helps you if you are finding a solution to this.

Our Services

Leave a Reply

Your email address will not be published. Required fields are marked *

 
Enquiry Now
iogoos-logo

Our consultants will respond back within 8 business hours or less.

X