Example #1
0
/**
 * Recusive alternative to ksort
 *
 * The following code block can be utilized by PEAR's Testing_DocTest
 * <code> 
 * // Input //
 * $array = array(
 *     "c" => array(
 *         "d" => 4,
 *         "a" => 1,
 *         "b" => 2,
 *         "c" => 3,
 *         "e" => 5 
 *     ),
 *     "a" => array(
 *         "d" => 4,
 *         "b" => 2,
 *         "a" => 1,
 *         "e" => 5,
 *         "c" => 3
 *     ),
 *     "b" => array(
 *         "d" => 4,
 *         "b" => 2,
 *         "c" => 3,   
 *         "a" => 1
 *     )
 * );
 * 
 * // Execute //
 * ksortTree($array);
 * 
 * // Show //
 * print_r($array);
 * 
 * // expects:
 * // Array
 * // (
 * //     [a] => Array
 * //         (
 * //             [a] => 1
 * //             [b] => 2
 * //             [c] => 3
 * //             [d] => 4
 * //             [e] => 5
 * //         )
 * // 
 * //     [b] => Array
 * //         (
 * //             [a] => 1
 * //             [b] => 2
 * //             [c] => 3
 * //             [d] => 4
 * //         )
 * // 
 * //     [c] => Array
 * //         (
 * //             [a] => 1
 * //             [b] => 2
 * //             [c] => 3
 * //             [d] => 4
 * //             [e] => 5
 * //         )
 * // 
 * // )
 * </code>
 * 
 * @author    Kevin van Zonneveld <*****@*****.**>
 * @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;
}
Example #2
0
function ksortTree(&$array, $sortMaxLevel = -1, $currentLevel = 0)
{
    if ((int) $sortMaxLevel > -1 && $sortMaxLevel <= $currentLevel) {
        return false;
    }
    if (!is_array($array)) {
        return false;
    }
    ksort($array);
    foreach ($array as $k => $v) {
        $currentLevel++;
        ksortTree($array[$k], $sortMaxLevel, $currentLevel);
    }
    return true;
}
Example #3
0
 public static function getSearchedPluginsThemes()
 {
     $actionID = Reg::get('currentRequest.actionID');
     $datas = DB::getFields("?:temp_storage", "data", "type = 'getPluginsThemes' AND paramID = '" . $actionID . "'");
     DB::delete("?:temp_storage", "type = 'getPluginsThemes' AND paramID = '" . $actionID . "'");
     if (empty($datas)) {
         return array();
     }
     $finalData = array();
     foreach ($datas as $data) {
         $finalData = array_merge_recursive($finalData, (array) unserialize($data));
     }
     arrayMergeRecursiveNumericKeyHackFix($finalData);
     ksortTree($finalData);
     //finding not installed for site view only
     $typeItems = array_keys($finalData['typeView']);
     foreach ($typeItems as $item) {
         foreach ($finalData['siteView'] as $siteID => $value) {
             if (empty($value['active'][$item]) && empty($value['inactive'][$item])) {
                 $typeViewTemp = reset($finalData['typeView'][$item]);
                 $finalData['siteView'][$siteID]['notInstalled'][$item] = reset($typeViewTemp);
             }
         }
     }
     return $finalData;
 }