微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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> ';
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐