Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使数组可被n整除?_Php - Fatal编程技术网

Php 使数组可被n整除?

Php 使数组可被n整除?,php,Php,我有一个数组: $arr = ['a', 'b', 'c', 'd', 'e', 'f', 'g']; 有没有办法使它只包含可被3或n整除的元素?那么在上面的例子中,g会被移除,因为它是3除法的剩余部分 编辑 我希望元素的数量可以被3整除。@panthro只需使用下面的for循环并使用array\u pop即可 <?php $arr = ['a', 'b', 'c', 'd', 'e', 'f', 'g']; if(count($arr) % 3 != 0){

我有一个数组:

$arr = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];
有没有办法使它只包含可被3或n整除的元素?那么在上面的例子中,g会被移除,因为它是3除法的剩余部分

编辑


我希望元素的数量可以被3整除。

@panthro只需使用下面的for循环并使用array\u 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

@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
听起来您希望长度可以被3整除,并且希望删除元素,直到发生这种情况。数组\u slice可以在这里帮助您

$arr_length = count($arr);
$new_arr = array_slice($arr, 0, $arr_length - ($arr_length % 3));
听起来您希望长度可以被3整除,并且希望删除元素,直到发生这种情况。数组\u slice可以在这里帮助您

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

您可以使用array_slice、count和module%的组合来获得可均匀整除的数组:


您可以使用array_slice、count和module%的组合来获得可均匀整除的数组:


您可以通过for循环查看$i%3==0编辑:计算值,将计数除以3,将结果舍入底部,然后将计数乘以结果,只取值,直到计数乘以舍入结果。您的意思是元素的数量应该除以3吗?是的,我希望元素的数量可以除以3。因此,是否要删除元素,直到长度可被3整除?如果只有2个元素开始,那会变成0吗?对于当前的数组,预期的输出是什么?您可以对其进行for循环,查看$i%3==0编辑:计算值,将计数除以3,将结果四舍五入到底,然后将计数乘以结果,只取数值,直到计数乘以四舍五入的结果。你的意思是元素的数量应该除以3?是的,我希望元素的数量可以除以3。所以,你想删除元素,直到长度可以除以3?如果一开始只有2个元素,会变成0吗?对于当前的数组,预期的输出是什么?这是一个很好的解决方案。我喜欢。简短、易读且有意义。这是一个很好的解决方案。我喜欢。简短、易读且有意义。