2015-02-23 71 views
0

我想将一些代码移入Symfony,并且出于某种原因,某些内容无法正常工作,我无法解决原因。我已经打破了我的功能,所以我可以确定这个问题,事实上已经把它带到了一开始。Symfony2/PHP - 数组问题

所以我

public function getAvailabilityData(){ 
    $alerts = $this->em->getRepository('NickAlertBundle:AvailabilityAlert')->getActiveAlertIds(); 

    $alertsArray = array(); 

    if (!$alerts) { 
     throw $this->createNotFoundException('Unable to find Availability.'); 
    } 

    foreach($alerts as $alert){ 
     $alertId = (int)$alert['id']; 
     var_dump($alertId); 
     $alertsArray[$alertId] = array(); 
    } 
    var_dump($alertsArray); 

    return $alertsArray; 
} 

现在我知道我有我的数据库2个警报,当我的var_dump $ alertId

INT(1)INT(2)

这进一步显现

所以这些id应该是我的数组中的第一个元素,这就是我所做的。但在var_dump结尾输出数组,我得到一个空数组

array(2) { 
    [1]=> array(0) { } 
    [2]=> array(0) { } 
} 

这是为什么?

感谢

+0

你怎么想?包含所有提醒ID的数组? – chapay 2015-02-23 14:12:34

+0

开始是的。这将最终成为一个多维数组,但第一个元素将是ID。 – 2015-02-23 14:22:40

+1

然后使用'$ alertsArray [] = $ alertId;'而不是'$ alertsArray [$ alertId] = array();' – chapay 2015-02-23 14:25:53

回答

0

明确设置一个空数组作为值

foreach($alerts as $alert){ 
    $alertId = (int)$alert['id']; 
    var_dump($alertId); 
    $alertsArray[$alertId] = array(); 
} 

声像你想做某事,如:+

foreach($alerts as $alert){ 
    $alertId = (int)$alert['id']; 
    var_dump($alertId); 
    $alertsArray[$alertId] = $alertId; 
}