PHP:填充数组中的"间隙"

abo*_*ved 2 php arrays merge

我有一个php数组(通过表单中的复选框值获得 - 如你所知,复选框只在未设置时显示在_POST变量中).

Array
(
    [2] => 0,2
    [3] => 0,3
)
Run Code Online (Sandbox Code Playgroud)

我需要一种方法来"填补"0-5范围之间的差距.所以上面看起来像(用'-1'填充空格.我尝试array_merge()使用填充'-1'的数组,但这不起作用.

Array
(
    [0] => -1
    [1] => -1
    [2] => 0,2
    [3] => 0,3
    [4] => -1
    [5] => -1
)
Run Code Online (Sandbox Code Playgroud)

我想我可能已经走错了路,我正试图解决这个问题,但是我已经花了太多时间在这个解决方案中退出 - 这种感觉我相信大多数人都熟悉(!)

干杯!

use*_*291 7

array_merge不起作用,但'+'确实有效!

$a = array(2 => 22, 3 => 33);
$b = $a + array_fill(0, 6, -1);
Run Code Online (Sandbox Code Playgroud)

但关键顺序是错误的,所以你可能想要ksort它.


Cha*_*rch 5

为什么不在循环中做呢?

for ($i = 0; $i <= 5; $i++)
{
    if (!isset($array[$i]))
    {
        $array[$i] = -1;
    }
}
Run Code Online (Sandbox Code Playgroud)