2016-08-19 125 views
-4

例如,我有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
我该如何解决这个问题?
四次迭代后循环应从第一次开始。

+4

请问您可以分享您迄今为止所做的工作吗? –

+1

请在你的问题 –

回答

0

更新:您将不得不使用外部变量来跟踪正在访问的组元素的当前索引,并在组到达组尾部时将其重置为零。

这是你在找什么?

$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

$组= //数组更新输出以下 阵列 ( [0] =>数组 ( [ID] => 10 [电子邮件] => [email protected] ) [1] =>数组 ( [ID] => 17 [电子邮件] => [email protected] ) [2] =>数组 ( [ID] => 34 [电子邮件] => [email protected] ) [3] =>数组 ( [ID] => 62 [电子邮件] => [email protected] ) )
我的基团不递增值,但阵列。我需要从这个数组中获得'id'值 –

+0

@JnanaSowmya,我已经更新了我的答案。希望这可以帮助。 – TravellingSalesman

+0

非常感谢你:)我的问题解决了。 –