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

我想按app_down的数值进行降序应该怎么改?

<?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>
</li>

我想按app_down的数值进行降序应该怎么改?

你可以使用usort这个函数进行对$a['list']进行处理

usort($a['list'],function($a,$b){
    if($a['app_down'] == $b['app_down'])return 0;
    return $a['app_down']>$b['app_down'] ? 1 : -1;
    //如果发现结果是升序,1和-1对换下位置,记不太清了
});

追问

用了这个代码后提示 Parse error: syntax error, unexpected T_FUNCTION

追答

你php什么版本的?版本太低是不支持匿名函数的。

那你改成

function mysort($a,$b){
    if($a['app_down'] == $b['app_down'])return 0;
    return $a['app_down']>$b['app_down'] ? 1 : -1;
    //如果发现结果是升序,1和-1对换下位置,记不太清了
}
usort($a['list'],'mysort');

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