2015-09-07 26 views
0

阵列:的Symfony 2.日期时间数组排序数据

$allEvents = [];   
    foreach ($events as $event) { 
      $allEvents[] = $event; 
    } 
    foreach ($user->getEvents() as $event) { 
      $allEvents[] = $event; 
    } 

结果小枝:

 return $this->render(
     'MyBundle:User:dashboard.html.twig', 
     [ 'allEvents' => $allEvents, 
      'user' => $user ] 
     ); 

的var_dump allEvents结果:

array:5 [ 0 => Event { 
       id: 26 
       title: "test action" 
       category: Category 
       creator: User 
       ***schedule***: DateTime { 
         "date": "2015-12-24 17:10:00.000000" 
         "timezone_type": ... 
         "timezone": ... 
         } 
       } 
      1 => Event {...} 
      2 => Event {...} 
      3 => Event {...} 
      4 => Event {...} 
     ] 

问:我该怎么办按时间表排序数组(有些像ASC或DESC排序)?

回答

1

你可以使用PHP的usort功能如下(我已经编辑了答案给你看更清晰):

编辑:

$allSortedEvents = usort($allEvents, function($a, $b){ 
    if ($a->getSchedule() == $b->getSchedule()) 
    { 
     return 0; 
    } 
    else 
    { 
     return ($a->getSchedule() < $b->getSchedule()) ? -1 : 1; 
    } 
});  

并发送至为树枝:

return $this->render(
    'MyBundle:User:dashboard.html.twig', 
    [ 'allEvents' => $allSortedEvents, 
     'user' => $user ] 
    ); 
+0

试过了。错误:'警告:usort()期望参数2是一个有效的回调函数'customSort'未找到或无效的函数名称'。有另一个想法? – chrisperk

+0

你在哪里写了customSort函数? – Airam

+1

解决方案:'$ a [“schedule”]'替换为'$ a-> getSchedule()'和其他 – chrisperk