web-dev-qa-db-fra.com

Comment stocker les valeurs de boucle foreach dans un tableau?

Besoin de stocker les valeurs de la boucle foreach dans un tableau, besoin d'aide pour le faire. Le code ci-dessous ne fonctionne pas, stocke uniquement la dernière valeur, les éléments $ essayés. = ..., mais cela ne fait pas l'affaire non plus, toute aide sera appréciée.

<?php
foreach($group_membership as $i => $username) {
 $items = array($username);
}

print_r($items);
?>
97
Brad

Déclarez le tableau $items en dehors de la boucle et utilisez $items[] pour ajouter des éléments au tableau: 

$items = array();
foreach($group_membership as $username) {
 $items[] = $username;
}

print_r($items);
219
Andy E

Utilisation

$items[] = $username;
14
Sjoerd

Essayer

$items = array_values ( $group_membership );
7
Dogbert
<?php 
$items = array();
$count = 0;
foreach($group_membership as $i => $username) { 
 $items[$count++] = $username; 
} 
print_r($items); 
?>
3
sushil bharwani

Tu peux essayer de faire ma réponse,

vous avez écrit ceci:

<?php
foreach($group_membership as $i => $username) {
    $items = array($username);
}

print_r($items);
?>

Et dans votre cas, je ferais ceci:

<?php
$items = array();
foreach ($group_membership as $username) { // If you need the pointer (but I don't think) you have to add '$i => ' before $username
    $items[] = $username;
} ?>

Comme vous l'avez montré dans votre question, il semble que vous ayez besoin d'un tableau de noms d'utilisateurs appartenant à un groupe particulier :) Dans ce cas, je préfère une bonne requête SQL avec une simple boucle while;)

<?php
$query = "SELECT `username` FROM group_membership AS gm LEFT JOIN users AS u ON gm.`idUser` = u.`idUser`";
$result = mysql_query($query);
while ($record = mysql_fetch_array($result)) { \
    $items[] = $username; 
} 
?>

while est plus rapide, mais le dernier exemple n'est que le résultat d'une observation. :)

2
Paper-bat
$items=array(); 
$j=0; 

foreach($group_membership as $i => $username){ 
    $items[$j++]=$username; 
}

Essayez juste ce qui précède dans votre code.

1
CuriousCase

cette question semble assez ancienne mais si vous venez la passer, vous pouvez utiliser la fonction intégrée PHP array_Push () pour envoyer des données dans un tableau en utilisant l'exemple ci-dessous.

<?php
    $item = array();
    foreach($group_membership as $i => $username) {
        array_Push($item, $username);
    }
    print_r($items);
?>
0