2013-10-17 135 views
-1

我想循環使用for-each循環或任何其他建議方式的數組變量。如果數組有兩個或多個相同的項目/值時循環,則循環應該跳過數據並繼續處理下一個數據。在foreach循環中跳過多維數組PHP

$users = array (array('user1', id , email), 
       array('user2', id , email), 
       array('user3', id , email), 
       array('user4', id , email) 

foreach ($users as $key) { 

    // do something for each user 
    // if from arrays user1 , user2 , user3 , user4 there are some identical data .. 
    // skip that user and continue with another user 
    // then return results and number of users skipped   
} 

例如: 如果數組$用戶USER1有一個電子郵件地址/ ID相同用戶3跳過用戶3,並繼續USER4

希望你得到了我的觀點因爲我不是英語這麼好

回答

0

一個簡單的方法是隻把所有想出到目前爲止,同時通過陣列到另一個陣列循環的電子郵件地址,並檢查當前的電子郵件是在已:

$email_addresses_processed_so_far = array(); 
foreach ($users as $key) { 
    if(in_array($key[2], $email_addresses_processed_so_far)) { 
    continue; 
    } 
    $email_addresses_processed_so_far[] = $key[2]; // put email address into array 
    // additional processing here 
    // … 
} 
+0

嘿CBroe感謝您的建議..只是想從你的代碼上面..我認爲if語句將返回true時發現一個已處理的電子郵件,但當它發現另一個電子郵件相同的數組中的一個時會發生什麼.. ..不會打破循環..? – RobyMi

+0

如果它發現已經發生的電子郵件,它將會跳過該數組元素的處理,並繼續處理下一個數組元素 - 是不是你想要的? – CBroe

+0

是啊這就是我想要的..謝謝兄弟.. – RobyMi