在循环外打印数组

时间:2018-01-04 13:09:05

标签: php arrays loops

我有一个名为users的数组,其中包含分配给项目的用户。 例如:USERID“1,2,3,4和5”

我正在尝试从该数组中获取所有用户ID,并将其打印在单独的变量中。下面的代码在循环内部工作得很好。它获得所有用户ID并将其打印出来,如“12345”

但是当我在循环外打印它时,它只打印最后一个id“5”。

foreach ($users as $key => $value) {
   // THIS WRITE ALL USER ID
   echo $key = sprintf( '%s', $value['id'] );
}

// I WANT TO GET ALL USERID HERE (OUTSIDE THE LOOP). 
// RIGHT NOW IT ONLY WRITE THE LAST USER ID     
echo $key = sprintf( '%s', $value['id'] );

抱歉我的英语不好☺️

修改

感谢Philipp Maurer,我最终得到了它! ☺️ 我接下来要做的是向每个用户发送通知。 $row =用户ID。

如果我这样写的话,什么都没发生:

$ids = array_column($users, 'id');
    $userid = implode(', ', $ids);

    $data=explode(',',$userid);

    foreach($data as $row) 
    {
        $um_notifications->api->store_notification( $row, 'new_action', $vars );
    }

但如果我手动编写$userid = "1, 5, 8";(与从数组中写出的相同),它会向每个用户发送正确的信息。

2 个答案:

答案 0 :(得分:0)

每次迭代都会替换$key变量,在implode()键上使用$users函数:

echo implode(',', array_keys($users));

编辑:添加了正确的语法

答案 1 :(得分:0)

要从数组中检索所有用户ID,可以使用array_column,它将从数组中的每个元素检索指定的字段。 array_column documentation

$ids = array_column($users, 'id');

然后,您可以使用implode将所有内容添加到单个字符串中并回显它。 implode documentation

echo implode(', ', $ids);

demo