【发布时间】:2014-09-24 20:26:37
【问题描述】:
老实说,我在这里有两个问题,一个是 Yii 框架的新手,我在网上找到的 usort 函数对我来说没有意义。我还没有找到用外行术语解释发生了什么的。
简而言之,我有一个类似这样的对象数组:
Array
(
[0] => stdClass Object
(
[id] => 1
[name] => Mary Jane
[count] => 420
)
[1] => stdClass Object
(
[id] => 4
[name] => Johnny
[count] => 234
)
[2] => stdClass Object
(
[id] => 3
[name] => Kathy
[count] => 4354
)
.... 我想按 id 对对象进行排序 问题是数据是按上次更新日期而不是 ID 排序的,我需要知道最后一个 ID,因为我所做的是将数据从 API 拉到我的数据库中,所以我基本上检查最后一个 API id 是 1100但我的数据库最后一个 id 是 1050,所以我知道我落后大约 50 条记录。
所以我在活动模型中创建了一个公共静态函数
public static function sort_api_data_by_id($a, $b)
{
return strcmp($a->id, $b->id);
}
在我的一个页面中,我正在运行 usort 函数
usort($array, Activity::model()->sort_api_data_by_id());
如果有所不同,则该文件是活动下的视图,因此它访问活动模型中的功能,因此它不是不同的模型/视图关系或任何东西。
我从另一个页面获得了该函数,但我不明白我需要传递给参数 $a 和 $b 的函数,在所有示例中它似乎都没有传递任何东西。 sort_api_data_by_id 是活动模型中的函数。
现在可能虽然只找到最高 id 而不是对整个对象进行排序可能更有效,但我仍然需要稍后处理数据并将其输入数据库,如果它按逻辑顺序排列,那将更容易。
【问题讨论】: