Pastoid

Flatten an Array

The page you are looking at now is at this URL: http://pastoid.com/bw3

This paste was last updated on September 9, 2009 at 9:46 am.

flatten.phpraw

<?php
 
function flatten($arr, $prefix = '')
{
	$output = array();
	foreach($arr as $k => $v) {
		if(is_array($v)) {
			$output = array_merge($output, flatten($v, "{$prefix}{$k}."));
		}
		else {
			$output["{$prefix}{$k}"] = $v;
		}
	}
	return $output;
}
 
$test = array(
	'one' => array(
		'a' => 1,
		'b' => 2,
		'c' => array(
			1 => 'alpha',
			2 => 'beta',
		),
	),
	'two' => 2,
	'three' => array(
		4 => 'a',
	),
	4 => 'delta',
	5 => array(
		'a' => 1,
		1 => 'a',
		'b' => 'c',
		2 => 3,
	),
	'six' => array(),
);
 
var_dump(flatten($test));
 
?>
 
 

Toggle wordwrap

Outputraw

 array
  'one.a' => int 1
  'one.b' => int 2
  'one.c.1' => string 'alpha' (length=5)
  'one.c.2' => string 'beta' (length=4)
  'two' => int 2
  'three.4' => string 'a' (length=1)
  0 => string 'delta' (length=5)
  '5.a' => int 1
  '5.1' => string 'a' (length=1)
  '5.b' => string 'c' (length=1)
  '5.2' => int 3
 
 

Toggle wordwrap

Referring DomainHits
Unknown Referer 175
pastoid.com 3
Is this paste spam?
<Hide