2017-04-04 66 views
1

我有一個數組:製作一個可被n整除的數組?

$arr = ['a', 'b', 'c', 'd', 'e', 'f', 'g']; 

有沒有一種方法,使之包含元素只有3(或n)整除?那麼在上面的例子中,g會被刪除,因爲它是從3的一個分區中剩下的?


編輯

我想整除的元素量3

+1

你可以通過'它for'循環,看看'$ I 3% == 0 ** **編輯:**對數值進行計數,將計數除以3,將結果四捨五入到最下方,然後將結果乘以計數並只取值直到計數乘以四捨五入的結果 – Loko

+1

您的意思是元素的數量應該可以被3除? – Shogunivar

+0

是的,我想要可以被3整除的元素的數量。 – panthro

回答

6

您可以使用array_slice()count()和模量(%)的組合來獲取數組整除:

$arr_length = count($arr); 
$new_arr = array_slice($arr, 0, $arr_length - ($arr_length % 3)); 
0

@panthro簡單地嘗試for循環像下面和使用array_pop()

<?php 
    $arr = ['a', 'b', 'c', 'd', 'e', 'f', 'g']; 
    if(count($arr) % 3 != 0){ 
     $remainder = count($arr) % 3; 
     for($i=0;$i < $remainder;$i++){ 
      array_pop($arr); 
     } 
    } 
    echo "<pre>"; 
    print_r($arr); //final array divisible by 3 
2

聽起來像是你想長度可以被3整除,並且您想要刪除元素直到發生這種情況秒。 array_slice可以幫助你在這裏。

$to_remove = count($arr) % 3; 
if($to_remove > 0){ 
    $arr = array_slice($arr, 0, -$to_remove); 
} 
+2

這是一個很好的解決方案。我喜歡。簡短,易於閱讀和合理。 – Loko

相關問題