web-dev-qa-db-ja.com

foreachループの値を配列に保存する方法は?

Foreachループからの値を配列に保存する必要があります。それを行うのに助けが必要です。以下のコードは機能せず、最後の値を保存するだけで、$ items。= ...を試しましたが、それでもトリックを行っていません。どんな助けでも大歓迎です。

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

print_r($items);
?>
103
Brad

ループ外で$items配列を宣言し、$items[]を使用して配列にアイテムを追加します。

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

print_r($items);
231
Andy E

つかいます

$items[] = $username;
14
Sjoerd

試して

$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

あなたは私の答えをしようとすることができます、

あなたはこれを書いた:

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

print_r($items);
?>

そして、あなたの場合、私はこれをするでしょう:

<?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;
} ?>

あなたの質問で示すように、特定のグループに属するユーザー名の配列が必要なようです:)この場合、単純なwhileループを備えた良いSQLクエリを好みます;)

<?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は高速ですが、最後の例は観察の結果にすぎません。 :)

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

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

コードで上記を試してください。

1
CuriousCase

この質問はかなり古いように見えますが、合格した場合は、PHP組み込み関数array_Push()を使用して、以下の例を使用して配列にデータをプッシュできます。

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