2017-10-05 183 views
0

我想用數據庫中的數據填充數組。我創建了一個for循環這一點,但我覺得我做錯了什麼(我還是很新的節目很抱歉爲!)Php用for循環填充數組

for($i=0; $i<count($uploadprofile->getAgencies()); $i++){ 
    foreach($uploadprofile->getAgencies() as $agency) { 
    $users[$i] = $agency->getAgencyUser(); 
    } 
    } 
    dump(count($users)); 

DUMP語句只計算,即使有應該1個用戶在那裏是3個用戶。

我需要這個數組,然後使用該數據在其他for循環算賬:

for($i=0; $i<count($users); $i++){ 
    foreach($users as $user){ 
     $manager->addNotification($user->toArray()[$i], $notif); 
    } 
    } 

我相信這是非常糟糕的編碼。對於簡單的東西來說,它看起來太多了。所以我會對任何建議感到高興,而不僅僅是「低調」!

如果需要更多關於實體的信息,我很樂意爲他們提供!

回答

2

除非我失去了一些東西,否則你有太多的循環,我會堅持foreach。要建立$users陣列:

foreach($uploadprofile->getAgencies() as $agency){ 
    $users[] = $agency->getAgencyUser(); 
} 

要使用它:

foreach($users as $user){ 
    $manager->addNotification($user->toArray(), $notif); 
} 

但是,如果你實際上並不需要在此之後,$users數組,那麼只是結合:

foreach($uploadprofile->getAgencies() as $agency){ 
    $user = $agency->getAgencyUser(); 
    $manager->addNotification($user->toArray(), $notif); 
} 
+0

謝謝這麼多你的快速回答! 我只是試過你的方式,但當做轉儲(計數($用戶))數仍然是1但不是3.任何想法,爲什麼這可能是? :) – sonja

+0

哦,我也試過了你的切割解決方案,唯一的問題是,給addNotification方法的第一個參數不能是數組。這就是爲什麼我添加了確切的位置([$ i])。但我敢打賭,也有更順利的方法來解決這個問題!很想聽到它! :d – sonja