从foreach开始循环,在foreach中进行几次迭代后PHP
例如,我有7个通道和4个组。这应该按照以下方式分配:从foreach开始循环,在foreach中进行几次迭代后PHP
Channel 1 - Group 1
Channel 2 - Group 2
Channel 3 - Group 3
Channel 4 - Group 4
Channel 5 - Group 1
Channel 6 - Group 2
Channel 7 - Group 3
我该如何分配这种方式?
我用for循环如下
$groups = //array outputs the following
Array
(
[0] => Array
(
[id] => 10
[email] => [email protected]
)
[1] => Array
(
[id] => 17
[email] => [email protected]
)
[2] => Array
(
[id] => 34
[email] => [email protected]
)
[3] => Array
(
[id] => 62
[email] => [email protected]
)
)
现在,
我有一个查询
foreach ($query as $key => $value) {
$usrSql = "UPDATE issues SET user_id = ".$usersAssigned[$key]['id']." WHERE id =".$value['id'];
// DB updating process
}
对于4次迭代它工作正常,从第5次迭代,我得到一个错误:
未定义偏移量:4
我该如何解决这个问题?
四次迭代后循环应从第一次开始。
更新:您将不得不使用外部变量来跟踪正在访问的组元素的当前索引,并在组到达组尾部时将其重置为零。
这是你在找什么?
$channels = array("Channel 1", "Channel 2", "Channel 3", "Channel 4", "Channel 5", "Channel 6", "Channel 7");
$group_id = 0;
$groups = array(array("id"=>3, "email"=>"email_1"), array("id"=>10, "email"=>"email_2"), array("id"=>6, "email"=>"email_3"), array("id"=>71, "email"=>"email_4"));
foreach($channels as $channel)
{
echo $channel." - Group ".$groups[$group_id]["id"]."\n"; // print out the channel and the group id
$group_id ++;
if($group_id > 0 && $group_id % (count($groups)) == 0)
$group_id = 0;
}
$组= //数组更新输出以下 阵列 ( [0] =>数组 ( [ID] => 10 [电子邮件] => [email protected] ) [1] =>数组 ( [ID] => 17 [电子邮件] => [email protected] ) [2] =>数组 ( [ID] => 34 [电子邮件] => [email protected] ) [3] =>数组 ( [ID] => 62 [电子邮件] => [email protected] ) )
我的基团不递增值,但阵列。我需要从这个数组中获得'id'值 –
@JnanaSowmya,我已经更新了我的答案。希望这可以帮助。 – TravellingSalesman
非常感谢你:)我的问题解决了。 –
请问您可以分享您迄今为止所做的工作吗? –
请在你的问题 –