我有一个名为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";
(与从数组中写出的相同),它会向每个用户发送正确的信息。
答案 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);