How do I use a recursive array iterator to process a multidimensional array?

djsyzmik

New Member
I'm trying to get something like this working:\[code\]function posts_formatter (&$posts){ foreach ($posts as $k => $v){ if (is_array($v)){ posts_formatter($v); }else{ switch (strtolower($k)){ # make email addresses lowercase case (strpos($k, 'email') !== FALSE): $posts[$k] = strtolower($v); break; # make postcodes uppercase case (strpos($k, 'postcode') !== FALSE): $posts[$k] = strtoupper($v); break; # capitalize certain things case (strpos($k, 'line1') !== FALSE): case (strpos($k, 'line2') !== FALSE): case (strpos($k, 'line3') !== FALSE): case (strpos($k, 'forename') !== FALSE): case (strpos($k, 'surname') !== FALSE): $posts[$k] = capitalize($v); break; } } }}\[/code\]It will correctly go through the array and format the values but I can't get it to return them. I've played around with removing the \[code\]&\[/code\] from the function declaration and adding a return at the end but it won't do anything.Additionally, I'm thinking perhaps using a \[code\]RecursiveArrayIterator\[/code\] might be the way to go. However, despite the presence of a book right in front of me with a chapter on SPL Iterators its examples are useless towards being able to achieve what I'm trying to. How would I go about implementing one?Edit:\[code\]array ( 'user' => array ( 'title' => 'Mr.', 'forename' => 'lowercase', 'surname' => 'name', 'businessName' => 'some dude', 'telephone' => '07545464646', 'postcode' => 'wa1 6nj', 'line1' => 'blergh road', 'line2' => 'randomLY cApitaLIzed wOrds', 'line3' => '', ), 'email' => '[email protected]', 'address' => array ( 'postcode' => 'ab1 1ba', 'line1' => 'test road', 'line2' => 'testville', 'line3' => 'testshire', ), 'date' => '2010-09-30')\[/code\]
 
Back
Top