OK

CSSJockey websites use cookies to give you a better user experience on our websites. Visit our Privacy and Cookie policy to get more information about cookies, including how you could opt-out.

PHP - Flatten or Merge a Multidimensional Array

Here's a code snippet to flatten or merge multidimensional array. This is useful when we need to find if a value exists...

published: 2 years ago

Here’s a code snippet to flatten or merge 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
)

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

 
 

pre-built solutions

Speed-up the launch of your web projects with our ready-to-use plugins, themes and widgets!

This 3 columns Block helps you to showcase the FAQs section anywhere on your website. You can add any number of FAQs and...
With this UI Block, you can display Logo and WordPress navigation menus on both the left and right-hand side. You can ch...