Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.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 在同一数组中按日期对数组排序_Php_Codeigniter - Fatal编程技术网

Php 在同一数组中按日期对数组排序

Php 在同一数组中按日期对数组排序,php,codeigniter,Php,Codeigniter,我在codeigniter中的一个博客网站上工作。在该网站中,博客将按第一顺序最后一个列出。即最后一个将位于顶部。在我的应用程序变量中,$blogs包含所有要列出的博客和创建日期。$blogs将显示博客,但不是按要求的顺序。现在我想按创建值的日期对博客进行排序 返回博客的主要模型函数在这里 public function LoadAllBlogs(){ $blogs = array(); $this->db->select('id');

我在codeigniter中的一个博客网站上工作。在该网站中,博客将按第一顺序最后一个列出。即最后一个将位于顶部。在我的应用程序变量中,$blogs包含所有要列出的博客和创建日期。$blogs将显示博客,但不是按要求的顺序。现在我想按创建值的日期对博客进行排序

返回博客的主要模型函数在这里

public function LoadAllBlogs(){

         $blogs = array();

         $this->db->select('id');
         $this->db->from('blog');
         $q=  $this->db->get();                                 

         foreach ($q->result() as $row) {
               $blog = new Blog();
               $blog->loadWithLatestPublishedEntry($row->id);
               $blogs[] = $blog;
         }

     return $blogs; //contain all the blogs entry and the date in which blog is created
}

有人能帮我吗?…

您需要在查询中添加ORDER BY子句,以便它们按数据库排序。非常简单,将
order\u by()
函数传递一个字段名,然后asc用于升序,或者desc用于降序

$this->db->select('id');
$this->db->from('blog');
$this->db->order_by("date_created", "desc");
$q = $this->db->get();

您需要向查询中添加ORDERBY子句,以便它们按数据库排序。非常简单,将
order\u by()
函数传递一个字段名,然后asc用于升序,或者desc用于降序

$this->db->select('id');
$this->db->from('blog');
$this->db->order_by("date_created", "desc");
$q = $this->db->get();

在我看来,您需要一个自定义函数来比较每两篇文章,并使用php uksort(数组&$array,callable$cmp_函数)来完成这项工作。


在我看来,您需要一个自定义函数来比较每两篇文章,并使用php uksort(数组&$array,callable$cmp_函数)来完成这项工作。


@cillosis是正确的-按查询使用订单

但是,由于你不打算这样做,你可以尝试以下方法-

我不知道blog数组是什么样子,我假设您的日期值类似于-
“Y-m-d”

//只是一个旁注-在使用strotime时-记住这一点->通过查看不同组件之间的分隔符,可以消除m/d/y或d-m-y格式中的日期歧义:如果分隔符是斜杠(/),则假定为美式m/d/y;而如果分隔符是破折号(-)或点(.),则假定为欧洲d-m-y格式


@cillosis是正确的-按查询使用订单

但是,由于你不打算这样做,你可以尝试以下方法-

我不知道blog数组是什么样子,我假设您的日期值类似于-
“Y-m-d”

//只是一个旁注-在使用strotime时-记住这一点->通过查看不同组件之间的分隔符,可以消除m/d/y或d-m-y格式中的日期歧义:如果分隔符是斜杠(/),则假定为美式m/d/y;而如果分隔符是破折号(-)或点(.),则假定为欧洲d-m-y格式


你的数组看起来像什么是你的朋友。你的数组看起来像什么是你的朋友。你列出了表中的值。但目前我有一个数组中的所有值和日期。是否可以使用同一数组中的日期对数组进行排序。如果你允许数据库为你排序(通常效率高出数倍),然后,在foreach循环中,您将以正确的顺序获取记录,而无需对正在创建的数组进行排序。您列出了表中的值。但目前我将所有值和日期都包含在一个数组中。是否可以使用同一数组中的日期对数组进行排序。如果允许数据库为您排序(这通常是效率的数倍),那么在foreach循环中,您将以正确的顺序获取记录,而无需对正在创建的数组进行排序。