最近用 array_unique
PHP: array_unique - Manual
他可以過濾重複的內容
但不小心用出一個 bug
例如有一個$array = [0,1,2,2,3,4];
發現array_unique(array);
var_dump 一看,key 發現有跳號
1 2 3 4 5 6
| <?php $array = [0,1,2,2,3,4];
var_dump($array); echo PHP_EOL; var_dump(array_unique($array));
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| array(6) { [0]=> int(0) [1]=> int(1) [2]=> int(2) [3]=> int(2) [4]=> int(3) [5]=> int(4) }
array(5) { [0]=> int(0) [1]=> int(1) [2]=> int(2) [4]=> int(3) [5]=> int(4) }
|
所以這時候做for($a = 0; $a < count($a); $a++)
會有問題
這邊有想到兩個做法
- 改 foreach
- array_values(\$array)
可以解決