Php YII-使用数组对数据提供程序进行排序
我有这样一个数组:Php YII-使用数组对数据提供程序进行排序,php,arrays,sorting,yii,Php,Arrays,Sorting,Yii,我有这样一个数组: Array ( [54995] => Array ( [id] => 54995 [create_time] => 2012-02-02 20:09:00 ) [57349] => Array ( [id] => 57349 [create_time] => 2012-02-09 2
Array
(
[54995] => Array
(
[id] => 54995
[create_time] => 2012-02-02 20:09:00
)
[57349] => Array
(
[id] => 57349
[create_time] => 2012-02-09 23:26:00
)
[63565] => Array
(
[id] => 63565
[create_time] => 2013-10-26 15:55:30
)
[63566] => Array
(
[id] => 63566
[create_time] => 2013-10-26 15:56:32
)
)
和按id排序的数据提供程序
我将使用此数组的创建时间对数据提供程序进行排序
数组id与dataProvider中的posts id相等
我能做这个吗
编辑:
我有链接和标签模型。我使用dataProvider进行链接,但创建存储在标记表中的时间
标记字段:
- 身份证
- 头衔
- 链接id
- 创造时间
- 身份证
- 头衔
$pCriteria = new CDbCriteria();
$pCriteria->condition = 'status=:p1';
$pCriteria->params = array(':p1' => Lookup::STATUS_PUBLISHED_ALL);
$pCriteria->addInCondition('id', $pishnahadIds);
$pLinks = Link::model()->findAll($pCriteria);
由于某些原因,我与您没有任何关系。如果我正确理解您的问题,您希望返回的数据按创建时间而不是id排序吗? 为此,只需使用 要修复关系信息,需要指定每个模型中的关系。看一看。希望这能给你一些建议。简而言之,每个模型都有一个
relations()
函数,该函数返回一个数组,描述它与其他模型的关系
编辑
显然我的方法是错误的……你能稍微澄清一下你的问题吗,查理斯特?现在,我想您希望将Link::model()->findAll()
操作的结果按create\u time
排序。另外,顶部的原始阵列来自哪里
编辑2
好的,那么链接和标记共享1:1的关系,您希望链接输出按相应标记的创建时间排序吗?您描述的阵列是否必须手动创建?是否需要在建议的链接排序之外使用它?能否提供用于生成数据提供程序的代码,这可能是一个简单的方法,只需将条件添加到dataprovider@JonPaulH谢谢,我在标题和描述中添加了更多信息。数组的id在链接表中,创建时间在标记表中。我手动创建数组
$pCriteria = new CDbCriteria();
// ...
$pCriteria->with = array('tag'); // Only works with properly setup relationships, otherwise use $pCriteria->join = '...';
$pCriteria->order = 'tag.create_time ASC'; // or DESC, whatever you need
$pLinks = Link::model()->findAll($pCriteria);