php – Foreach排序

我不太确定这是否可行,但无论如何我都会尝试解释它,

我们正在尝试为公会制作一个页面,我们希望它显示平均项目级别及其名称,例如:

Name | iLvL 
Bob    262
Sam    159

我们目前正在运行一个执行以下操作的脚本:

$members = $guild->getMembers();

这基本上得到了我们公会中所有成员的列表 – 我们正在迭代foreach循环并再次调用获取一些信息

//Character Arrays
foreach($members as $member) {

//Get character information
$mrank = $member['rank'];
$mname = $member['character']['name'];
$mgender = $member['character']['gender'];
$mlevel = $member['character']['level'];
$mrace = $member['character']['race'];
$character = $armory->getCharacter($mname);
$gear = $character->getGear();
$milevel = $gear['averageItemLevelEquipped'];
echo '<td><div align="center" class="style1">'. $mname .'</div></td>';
echo '<td><div align="center" class="style1">'. $milevel .'</div></td> ';

唯一的问题是因为我们迭代它们单数我不太确定如何将平均物品等级从最高到最低排序 – 我听说像rsort这样的东西但我似乎无法让它工作,我想知道如果有人能够伸出援助之手.

谢谢

解决方法:

我建议用你在那里的数据创建一个数组,每个人都有一个子数组.还要创建一个仅包含averageItemLevelEquipped值的数组,然后在runnning array_multisort时将其用作索引数组.它看起来像这样:

$resourcearray = array();
$indexarray = array();

foreach($members as $member) {
    //Get character information
    $mrank = $member['rank'];
    $mname = $member['character']['name'];
    $milevel = $gear['averageItemLevelEquipped'];
    //and anything else you want to add goes here, of course
    array_push($resourcearray, array('rank' => $mrank, 'charname' => $mname, 'itemlevel' => $milevel));
    array_push($indexarray, $milevel);
}

array_multisort($indexarray, $resourcearray);

foreach($resourcearray as $resource) {
    echo '<td><div align="center" class="style1">'. $resource['charname'] .'</div></td>';
    echo '<td><div align="center" class="style1">'. $resource['itemlevel'] .'</div></td> ';
}

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...