【发布时间】:2014-06-13 07:52:29
【问题描述】:
我有一个前端表格(使用 WordPress 的高级自定义字段插件),供用户跟踪他们每周骑自行车上班的天数。每个人都有自己的行,并输入他们每周的号码。然后我循环遍历为每一行输入的总数,并列出每个人的姓名及其总数。
我怎样才能对它进行排序,以便按最高总和 ($overalltotal) 的顺序列出名称?这是我的代码,它正确列出了名称及其总数,但未排序:
$rows = get_sub_field('ride_tracker');
foreach( $rows as $row )
{
$overalltotal = intval($row['week_1'] + $row['week_2'] + $row['week_3'] + $row['week_4']);
echo $row['name'] . ' : ' . $overalltotal . '<br />' ;
}
我已经阅读了有关 array_multisort 和 usort 的信息,但我不知道如何让它们与在循环期间计算的变量一起工作。
感谢您的帮助!
【问题讨论】:
-
你在 foreach 之前尝试过:
$rows = sort($rows);吗? -
我刚试过。它给了我这个:警告:为 foreach() 提供的参数无效
-
好的,现在我明白了。 $rows 是一个数组,如果你想按键排序,只需`$rows = get_sub_field('ride_tracker');` 和
ksort($rows); -
我在您指出的地方尝试了 ksort($rows) ,但没有效果。我需要按变量 $overalltotal 进行排序,该变量是在 foreach 循环内计算的,所以看起来排序代码必须在那之后,不是吗?
-
你不能在同一个循环中进行计算和排序——这应该很明显,如果你想一想:你不能对值进行排序而不是所有这些甚至都已经计算过了。将名称和总数放入一个数组中,对该数组进行排序,然后使用第二个循环输出数据。
标签: php wordpress sorting variables foreach