Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php YII-使用数组对数据提供程序进行排序_Php_Arrays_Sorting_Yii - Fatal编程技术网

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);