Как сохранить значения из цикла foreach в массив?

Нужно хранить значения из цикла foreach в массив, нужна помощь в этом. Код ниже не работает, только сохраняет последнее значение, пробовал $ items. = ..., но это тоже не помогает, любая помощь будет оценена.

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

print_r($items);
?>
97 голосов | спросил Brad 15 J0000006Europe/Moscow 2010, 17:35:31

7 ответов


0

Объявите массив $items вне цикла и используйте $items[] для добавления элементов в массив:

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

print_r($items);
ответил Andy E 15 J0000006Europe/Moscow 2010, 17:38:00
0

Использование

$items[] = $username;
ответил Sjoerd 15 J0000006Europe/Moscow 2010, 17:37:35
0

Try

$items = array_values ( $group_membership );
ответил Dogbert 15 J0000006Europe/Moscow 2010, 17:41:33
0
<?php 
$items = array();
$count = 0;
foreach($group_membership as $i => $username) { 
 $items[$count++] = $username; 
} 
print_r($items); 
?>
ответил sushil bharwani 15 J0000006Europe/Moscow 2010, 17:38:37
0

Вы можете попытаться сделать мой ответ,

вы написали это:

<?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 быстрее, но последний пример является только результатом наблюдения. :)

ответил Paper-bat 15 J0000006Europe/Moscow 2010, 18:20:23
0
$items=array(); 
$j=0; 

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

Просто попробуйте это в своем коде.

ответил CuriousCase 15 J0000006Europe/Moscow 2010, 19:56:46
0

этот вопрос кажется довольно старым, но если вы его передадите, вы можете использовать встроенную в PHP функцию array_push () для передачи данных в массив, используя приведенный ниже пример.

<?php
    $item = array();
    foreach($group_membership as $i => $username) {
        array_push($item, $username);
    }
    print_r($items);
?>
ответил Adeojo Emmanuel IMM 16 J0000006Europe/Moscow 2018, 20:44:34

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132