note 60518 added to ref.array
| From: | spamatmadhermitdotnet at osu1 dot php dot net | Date: | Tue, 10 Jan 2006 01:26:25 +0000 |
| Subject: | note 60518 added to ref.array | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-101473@lists.php.net to get a copy of this message | ||
Here is a function that recursively flattens an multidimensional array while maintaining keys.
Hopefully it is useful to someone..
Example Input:
Array
(
[name] => John Doe
[email] => johndoe@earthlink.net
[addresses] => Array
(
[1] => Array
(
[address] => 555 Somewhere
[city] => Podunk
[state] => CA
[zip] => 90120
)
[2] => Array
(
[address] => 333 Someother Place
[city] => Podunk
[state] => CA
[zip] => 91103
)
)
)
Example output:
Array
(
[name] => John Doe
[email] => johndoe@earthlink.net
[address1] => 555 Somewhere
[city1] => Podunk
[state1] => CA
[zip1] => 90120
[address2] => 333 Someother Place
[city2] => Podunk
[state2] => CA
[zip2] => 91103
)
<?
function flattenArray($array,$keyname='')
{
$tmp = array();
foreach($array as $key => $value)
{
if(is_array($value))
$tmp = array_merge($tmp,flattenArray($value,$key));
else
$tmp[$key.$keyname] = $value;
}
return $tmp;
}
?>
----
Manual Page -- http://www.php.net/manual/en/ref.array.php
Edit -- http://master.php.net/manage/user-notes.php?action=edit+60518
Delete: added to the manual -- http://master.php.net/manage/user-notes.php?action=delete+60518&report=yes&reason=added+to+the+manual
Delete: bad code -- http://master.php.net/manage/user-notes.php?action=delete+60518&report=yes&reason=bad+code
Delete: spam -- http://master.php.net/manage/user-notes.php?action=delete+60518&report=yes&reason=spam
Delete: useless -- http://master.php.net/manage/user-notes.php?action=delete+60518&report=yes&reason=useless
Delete: non-english -- http://master.php.net/manage/user-notes.php?action=delete+60518&report=yes&reason=non-english
Delete: already in docs -- http://master.php.net/manage/user-notes.php?action=delete+60518&report=yes&reason=already+in+docs
Delete: other reasons -- http://master.php.net/manage/user-notes.php?action=delete+60518&report=yes
Reject -- http://master.php.net/manage/user-notes.php?action=reject+60518&report=yes
Search -- http://master.php.net/manage/user-notes.php