php - 在 foreach 循环中爆炸/内爆
问题描述
我有一个字符串列表,例如
$list = "foo, bar";
我在此列表上使用explode 将列表项作为数组获取:
$strings = explode(", ", $list);
现在我需要获取数组的每一项并将其一一传递给 API,API 将返回列表条目的 ID。我想得到一个与 $list 类似但使用 ID 而不是字符串的字符串。我的问题是我无法将数组传递给 API 函数。我需要为每个列表项都这样做。所以我正在遍历数组:
foreach($strings as $names){
$ID = $o_api->GetGroupIdsByName($s_token, $names)->getData();
$AssignedGroups = implode("", $ID).";";
echo $AssignedGroups;
}
如果我运行这段代码,结果是:3;4; 这正是我需要将它传递给另一个 API 函数的原因。但是当我需要在循环之外重新使用这个列表时。如果我然后使用 $AssignedGroups 我只会得到最后一个 ID,而不是 2 个(或更多)合并的 ID。
我究竟做错了什么?
以下是完整的代码供参考:
$Groups = explode(", ", $value["Groups"]);
//var_dump($Groups);
foreach($Groups as $Names){
$GroupIDs = $o_api->GetGroupIdsByName($s_token, $Names)->getData();
$AssignedGroups = implode("", $GroupIDs).";";
echo $AssignedGroups;
}
$o_api->CreateUser($s_token, $Login, $Password, $IsOfflineUser, $IsWindowsUser, $FirstName, $LastName, $AssignedGroups, $Ratings);
解决方案
这里真正应该做的是:
$Groups = explode(", ", $value["Groups"]);
//var_dump($Groups);
// init as empty array
$AssignedGroups = [];
foreach ($Groups as $Names) {
$GroupIDs = $o_api->GetGroupIdsByName($s_token, $Names)->getData();
// a new string to array
$AssignedGroups[] = implode(';', $GroupIDs);
}
// here you can implode again:
$AssignedGroups = implode(';', $AssignedGroups);
// or even with another delimiter
$AssignedGroups = implode(',', $AssignedGroups);
摆弄implode
例子。
推荐阅读
- square - OAuth 用户是否需要拥有自己的位置?
- python - 计算 TensorFlow 学习标签的问题
- pyopencl - 创建 PyOpenCl 上下文会导致以后的访问冲突
- image - 在 wordpress 中上传和裁剪图像并从前端添加文本
- typescript - 我怎样才能做一个`部分
` 但仅适用于可为空的字段? - ios - 如何在 Twilio 应用程序中处理语音和视频的 CXProviderDelegate 函数?
- c# - 如何为事件分配按钮值
- amcharts - 如何在 amcharts 系列中包含自定义值以进行计算
- c# - 什么会导致此事件停止被调用?
- java - 如何通过java在windows上实现PocketSphinx