将数组整除为n?

时间:2017-04-04 14:06:06

标签: php

我有一个数组:

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

有没有办法让它包含只能被3(或n)整除的元素?所以在上面的例子中,g会被删除,因为它会从3的一个分区中遗留下来吗?

修改

我想要将3个元素整除的元素。

3 个答案:

答案 0 :(得分:6)

您可以使用array_slice()count()和模数(%)的组合来使数组均匀分割:

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

答案 1 :(得分:2)

听起来您希望 length 可以被3整除,并且您希望删除元素直到发生这种情况。 array_slice可以帮助你。

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

答案 2 :(得分: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