Как хранить значения из цикла foreach в массив?
нужно хранить значения из цикла foreach в массив,нужна помощь в этом. Код ниже не работает, только хранит последнее значение, пробовал $items .= ..., но это тоже не делает трюк, любая помощь будет оценена по достоинству.
<?php
foreach($group_membership as $i => $username) {
$items = array($username);
}
print_r($items);
?>
7 ответов:
объявить
$items
массив вне цикла и использовать$items[]
чтобы добавить элементы в массив:$items = array(); foreach($group_membership as $username) { $items[] = $username; } print_r($items);
<?php $items = array(); $count = 0; foreach($group_membership as $i => $username) { $items[$count++] = $username; } print_r($items); ?>
вы можете попробовать сделать мой ответ,
вы написали вот это:
<?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; } ?>
как вы показываете в своем вопросе, кажется, что вам нужен массив имен пользователей, которые находятся в определенной группе :) в этом случае я предпочитаю хороший sql-запрос с простым циклом 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
быстрее, но последний пример является только результатом наблюдения. :)