Example #1
0
function conv_sort($arr, $order)
{
    if (!(is_array($arr) && count($arr))) {
        return array();
    }
    $parents = array();
    foreach ($arr as $x) {
        if ($x['id'] == $x['parent']) {
            $parents[] = $x;
        }
    }
    if (stristr($order, 'created')) {
        usort($parents, 'sort_thr_created');
    } elseif (stristr($order, 'commented')) {
        usort($parents, 'sort_thr_commented');
    } elseif (stristr($order, 'ascending')) {
        usort($parents, 'sort_thr_created_rev');
    }
    if (count($parents)) {
        foreach ($parents as $i => $_x) {
            $parents[$i]['children'] = get_item_children($arr, $_x);
        }
    }
    if (count($parents)) {
        foreach ($parents as $k => $v) {
            if (count($parents[$k]['children'])) {
                $parents[$k]['children'] = sort_item_children($parents[$k]['children']);
            }
        }
    }
    $ret = array();
    if (count($parents)) {
        foreach ($parents as $x) {
            $ret[] = $x;
            if (count($x['children'])) {
                add_children_to_list($x['children'], $ret);
            }
        }
    }
    return $ret;
}
Example #2
0
function conv_sort($arr, $order)
{
    if (!(is_array($arr) && count($arr))) {
        return array();
    }
    $parents = array();
    $children = array();
    foreach ($arr as $x) {
        if ($x['id'] == $x['parent']) {
            $parents[] = $x;
        }
    }
    if (stristr($order, 'created')) {
        usort($parents, 'sort_thr_created');
    } elseif (stristr($order, 'commented')) {
        usort($parents, 'sort_thr_commented');
    }
    if (count($parents)) {
        foreach ($parents as $i => $_x) {
            $parents[$i]['children'] = get_item_children($arr, $_x);
        }
    }
    /*foreach($arr as $x) {
    		if($x['id'] != $x['parent']) {
    			$p = find_thread_parent_index($parents,$x);
    			if($p !== false)
    				$parents[$p]['children'][] = $x;
    		}
    	}*/
    if (count($parents)) {
        foreach ($parents as $k => $v) {
            if (count($parents[$k]['children'])) {
                $parents[$k]['children'] = sort_item_children($parents[$k]['children']);
                /*$y = $parents[$k]['children'];
                		usort($y,'sort_thr_created_rev');
                		$parents[$k]['children'] = $y;*/
            }
        }
    }
    $ret = array();
    if (count($parents)) {
        foreach ($parents as $x) {
            $ret[] = $x;
            if (count($x['children'])) {
                add_children_to_list($x['children'], $ret);
            }
            /*foreach($x['children'] as $y)
            		$ret[] = $y;*/
        }
    }
    return $ret;
}
Example #3
0
function conv_sort($arr, $order)
{
    if (!(is_array($arr) && count($arr))) {
        return array();
    }
    $parents = array();
    $children = array();
    $newarr = array();
    // This is a preparation for having two different items with the same uri in one thread
    // This will otherwise lead to an endless loop.
    foreach ($arr as $x) {
        if (!isset($newarr[$x['uri']])) {
            $newarr[$x['uri']] = $x;
        }
    }
    $arr = $newarr;
    foreach ($arr as $x) {
        if ($x['id'] == $x['parent']) {
            $parents[] = $x;
        }
    }
    if (stristr($order, 'created')) {
        usort($parents, 'sort_thr_created');
    } elseif (stristr($order, 'commented')) {
        usort($parents, 'sort_thr_commented');
    }
    if (count($parents)) {
        foreach ($parents as $i => $_x) {
            $parents[$i]['children'] = get_item_children($arr, $_x);
        }
    }
    /*foreach($arr as $x) {
    		if($x['id'] != $x['parent']) {
    			$p = find_thread_parent_index($parents,$x);
    			if($p !== false)
    				$parents[$p]['children'][] = $x;
    		}
    	}*/
    if (count($parents)) {
        foreach ($parents as $k => $v) {
            if (count($parents[$k]['children'])) {
                $parents[$k]['children'] = sort_item_children($parents[$k]['children']);
                /*$y = $parents[$k]['children'];
                		usort($y,'sort_thr_created_rev');
                		$parents[$k]['children'] = $y;*/
            }
        }
    }
    $ret = array();
    if (count($parents)) {
        foreach ($parents as $x) {
            $ret[] = $x;
            if (count($x['children'])) {
                add_children_to_list($x['children'], $ret);
            }
            /*foreach($x['children'] as $y)
            		$ret[] = $y;*/
        }
    }
    return $ret;
}