2017-10-05 1 views
0

Je voudrais remplir un tableau avec les données de ma base de données. J'ai créé une boucle pour cela, mais je pense que je fais quelque chose de mal (je suis encore très nouveau à la programmation désolé pour ça!)Php fill array avec la boucle for

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

La déclaration de décharge ne compte que 1 utilisateur même si il sont censés être 3 utilisateurs là-bas.

je besoin de ce tableau pour ensuite utiliser les données dans une autre boucle après:

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

Je suis sûr que ce soit vraiment mauvais codage. On dirait bien trop de lignes pour quelque chose d'aussi simple. Donc, je serais vraiment heureux de tout conseil plutôt que d'un "downvoting"!

Si plus d'informations sur les entités sont nécessaires, je serais heureux de les fournir!

Répondre

2

Sauf si quelque chose me manque, vous avez trop de boucles, et je m'en tiendrai à foreach. Pour construire le tableau $users:

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

Pour l'utiliser:

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

Mais, si vous ne sera pas réellement besoin du tableau $users après alors juste moissonneuse-batteuse:

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

Merci tellement pour votre réponse rapide! Je viens de l'essayer à votre guise mais en faisant dump (count ($ users)) le nombre est toujours 1 mais pas 3. aucune idée pourquoi cela pourrait être? :) – sonja

+0

Oh et moi avons aussi essayé votre solution, le seul problème est que le premier argument donné à la méthode addNotification ne peut pas être un tableau. C'est pourquoi j'ai ajouté l'emplacement exact ([$ i]). Mais je parie qu'il y a une façon plus simple de résoudre ça aussi! J'adorerais l'entendre! :RÉ – sonja