Php 向数组动态添加元素

Php 向数组动态添加元素,php,arrays,recursion,Php,Arrays,Recursion,我有一个元素数量动态的数组(它是用户生成的单词列表) 我希望能够随时将数组元素除以3: 我的想法是计算数组中的元素(使用count($myArray)),如果模数为0我将递归地添加元素,直到它添加为止 这是我的密码: function adjustArray($myArray, $lineLimit = 3){ $count = count($myArray); if ($count % $lineLimit != 0): $myArray[] = '';

我有一个元素数量动态的数组(它是用户生成的单词列表)

我希望能够随时将数组元素除以3:

我的想法是计算数组中的元素(使用
count($myArray)
),如果模数为0我将递归地添加元素,直到它添加为止

这是我的密码:

function adjustArray($myArray, $lineLimit = 3){
    $count = count($myArray);

    if ($count % $lineLimit != 0):
        $myArray[] = '';
        adjustArray($myArray, $lineLimit);

    else:
        return $myArray; //problem when returning is conditional (return won't work - returns NULL
    endif;

}

如何修复此代码,或者更好的是,如何更有效地执行此操作?

在while循环中执行此操作,这样您就不会有进行函数调用的开销

while(count($myArray) % $lineLimit !=0){
  $myArray[] = '';
}

这里不需要递归。只需添加所需的元素数,即可使长度为3的倍数:

function adjustArray($myArray, $lineLimit = 3){
    $count = count($myArray);

    if ($count % $lineLimit != 0){
        for($i = 0; $i < $lineLimit - $count % $lineLimit; $i++)
            $myArray[] = "";
    }   

    return $myArray;
}
而不是一个循环,使它更快


可以找到这种方法的演示。

“我如何才能更有效地执行此操作”——它不适用于已损坏的代码。如何才能更有效地编写损坏的代码?把你的猫放在键盘上-它会为你生成一些。无论如何,你的解释不清楚我的意思是如何使用更有效的方法得到我想要的结果:)显然不是用当前的代码;)非常感谢您的快速回复!阿萨德告诉你(所以我把他的标记为正确的)
$myArray = array_merge($myArray, array_fill(0, $lineLimit - $count % $lineLimit, ""));