如何将 foreach 循环的值存储到数组中?

需要将 foreach 循环中的值存储到数组中,这需要帮助。

下面的代码不工作,只存储最后一个值,尝试 $items .= ...,,但这也没有做到这一点,任何帮助将是感激的。

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


print_r($items);
496741 次浏览

使用

$items[] = $username;

在循环外声明 $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);
?>

试试看

$items = array_values ( $group_membership );

你可以试着做我的回答,

你写道:

<?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更快,但最后一个例子只是观察的结果。 :)

$items=array();
$j=0;


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

只需在代码中尝试上述操作。

这个问题看起来很老了,但是如果您遇到这个问题,可以使用 PHP 内置函数 array _ push ()将数据推送到数组中,如下例所示。

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

为了避免你出现太多的拼写错误:

foreach($group_membership as $username){
$username->items = array(additional array to add);
}
print_r($group_membership);

你要这么做:

foreach($orders as $item){
$transactionIds[]  =   $item->generated_order_id;
}


dump($transactionIds);

这是假设 $orders 集合有一个名为“ generated_ order _ id”的字段。