php二维数组中按某个元素的值排序

<?php foreach($a['list'] as $k => $v){?>
<li>
<a class="l" href="<?php echo $v['surl'];?>">
<img src="<?php echo $v['app_logo'];?>" border="0" alt="<?php echo $v['app_title'];?>">
</a>
<dl class="l">
<dt>
<a href="<?php echo $v['surl'];?>" class="l"><?php echo $v['app_title'];?></a>
<span class="l versions">(<?php echo $v['app_version'];?>)</span>
<div class="l level"><span class="<?php echo "l".ceil($v['app_recomment']/2); ?>"></span></div>
</dt>
<dd>
<?php echo $v['app_desc']; ?>
</dd>
<dd>
<span class="mr25"><?php echo date("Y-m-d",$v['app_update_time']);?> 发布</span>
</dd>
</dl>
<div class="r">
<span class="down-icon"></span>
<span class="down-num"><?php echo $v['app_down'];?></span>
<a href="<?php echo $v['surl'] ?>" class="down-i-btn">免费下载</a>
</div>
我想按app_down的数值进行降序应该怎么改?

//提供一个方法
class lib_BaseUtils{
        static $s_field;
static $s_sc;
/**
 * php 二维数组按键值排序
 * @param array $a 需要排序的数组
 * @param string $sort 排序的键值
 * @param string $d 默认ASC,带上参后为DESC
 * @return boolean
 */
static function array_sort(&$a, $sort, $d='') {
self::$s_field = $sort;
self::$s_sc = $d;
usort($a, array("lib_BaseUtils","array_sort_callback"));
return $a;
}
//排序回调方法 请勿删除
static function array_sort_callback($a, $b) {
$s_a = self::$s_sc ? $b : $a;
$s_b = self::$s_sc ? $a : $b;
$field = self::$s_field;
switch (true){
    case (is_string($s_a[$field]) && is_string($s_b[$field])):
        return strcmp($s_a[$field], $s_b[$field]);
        break;
    default:
        if($s_a[$field]== $s_b[$field]){
            return 0;
        }else{
            return $s_a[$field]>$s_b[$field]?-1:1;
        } 
}
}
}

调用方法 

lib_BaseUtils::array_sort($lists, 'app_down','desc');

追问

调用的代码应该放在那里?求指教

温馨提示:答案为网友推荐,仅供参考