推 Jerr:必須把no取出, 即使你寫的php code沒有loop, runtime還是會去 12/13 11:53
→ Jerr:loop的, 而且效率不一定比自己刻foreach好, 當然為了可讀性可 12/13 11:54
→ Jerr:以用array_map, array_filter來loop取出no來判斷 12/13 11:55
→ Jerr:array_unique(array_map(function($i) { return $i['no'];}, 12/13 11:58
→ Jerr:$arr)); 12/13 11:59
→ Jerr:像這樣會loop兩次 12/13 12:00
→ Jerr:$pool = array(); 12/13 12:01
→ Jerr:$checked = array_filter($array, function($i) use(&$pool){ 12/13 12:03
→ Jerr: if(isset($pool[$i['no']])) return $i; 12/13 12:03
→ Jerr: $pool[$i['no']] = true; 12/13 12:04
→ Jerr: return NULL; 12/13 12:04
→ Jerr:}); 12/13 12:04
→ Jerr:如上只loop一次就取出重複, 但是跟foreach沒啥兩樣了 12/13 12:06
推 Jerr:如果只是要檢查有沒有重複, foreach裡還可以continue; 反而 12/13 12:08
→ Jerr:更快 12/13 12:08
推 LaPass:php在這種時候還蠻麻煩的說.... orz 12/13 12:45
→ knives:所以結論是沒有現成的方法囉 12/13 15:05