2016-08-19 112 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

非常感謝你:)我的問題解決了。 –