» PHP Recursive ksort: ksortTree
3 Tree Manipulation
- str_replace: replaceTree
- » ksort: ksortTree
- Convert anything to Tree Structures in PHP
PHP Recursive functions
In real life I do not consider myself to be a tree-hugger, but as a developer: tree data structures and recursive technology totally get me going ;) Seriously though, they are very powerful ways to solve problems and often lead to elegant & reusable solutions.
In this series I am going to share a couple of functions and ways of approaching recursive problems in PHP.
Working with trees
When working with tree data structures you often need to craft them in different ways. PHP offers a lot of functions to change the shape of arrays, but often they only go 1 level deep. Trees can count an almost infinite number of levels. Hence we need recursive replacements for our beloved array functions.
ksortTree
ksortTree is the tree version of ksort. It will alphabetically reorder a tree based on it's keys.
<?php /** * Recusive alternative to ksort * * @author Kevin van Zonneveld <kevin@vanzonneveld.net> * @copyright 2008 Kevin van Zonneveld (http://kevin.vanzonneveld.net) * @license http://www.opensource.org/licenses/bsd-license.php New BSD Licence * @version SVN: Release: $Id: ksortTree.inc.php 223 2009-01-25 13:35:12Z kevin $ * @link http://kevin.vanzonneveld.net/ * * @param array $array */ function ksortTree( &$array ) { if (!is_array($array)) { return false; } ksort($array); foreach ($array as $k=>$v) { ksortTree($array[$k]); } return true; } ?>
Stay up to date
You can track my blog
articles and
comments. You may also find my
bookmarks interesting. Or
Follow me on Twitter
Like this Article?
|
Your money is no good here, but you can boost morale by spreading the word! : ) |
RelatedArticles like this one» Convert anything to Tree Structures in PHP |
tags: php, programming, recursion, hierarchy, tree data structure, array
category: Programming - PHP - Tree Manipulation
read: 6,579 times






tagcloud
#7. Kevin on 21 February 2010
#6. ds cartes on 02 February 2010
like this ~
#5. eMPee584 on 05 December 2009
#4. Kevin on 25 January 2009
#3. Zomb1e on 22 January 2009
should be:
#2. Kevin on 03 November 2008
#1. ZiTAL on 29 October 2008