2015-02-23 75 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; 
}