我有一个数组:
$arr = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];
有没有办法让它包含只能被3(或n)整除的元素?所以在上面的例子中,g
会被删除,因为它会从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