2017-10-05 200 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