我不太确定这是否可行,但无论如何我都会尝试解释一下,
我们正在尝试为我们的公会制作一个页面,我们希望它显示装备的平均元素等级以及他们的名字,例如
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 值的数组,然后在运行 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> ';
}
关于php - Foreach排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13030808/