我有這樣一個數組:(0,1,2,3,4,5,6,7,8,9 ,10)。我想保留前三個(0,1,2),然後移除下兩個(即3,4),然後保留三個(6,7,8),然後移除兩個(9,10),直到數組完全循環。PHP從數組中保留三個元素,然後丟棄兩個,然後保留三個,然後丟棄兩個等
我確定有一個簡單的解決方案,我只是沒有看到!
我有這樣一個數組:(0,1,2,3,4,5,6,7,8,9 ,10)。我想保留前三個(0,1,2),然後移除下兩個(即3,4),然後保留三個(6,7,8),然後移除兩個(9,10),直到數組完全循環。PHP從數組中保留三個元素,然後丟棄兩個,然後保留三個,然後丟棄兩個等
我確定有一個簡單的解決方案,我只是沒有看到!
很爲幾個選項,最乾淨的代碼可能是:
$array = [0,1,2,3,4,5,6,7,8,9,10];
$new_array = [];
for ($i = 0; $i < count($array); $i += 5) {
$new_array = array_merge($new_array, array_slice($array, $i, 3));
}
print_r($new_array);
,但很多呼叫array_merge
的可能不是大數組最高效的方法。
謝謝!完美的工作 – BusinessGuy
嘿我有另一種解決方案,不使用array_merge
根據@avy解決方案是不是大型數組的最高性能的方法。我沒有使用任何額外的數組。
$arr = array(0,1,2,3,4,5,6,7,8,9,10);
$len = sizeOf($arr);
$count = 0;
$i=0;
while($i<$len){
$count++;
if($count==3){
array_splice($arr,$i+1,2);
$count = 0;
$len = sizeOf($arr);
}
$i++;
}
print_r($arr);
的[從數組中刪除的元素]可能的複製(http://stackoverflow.com/questions/369602/delete-an-element-from-an-array) –