PHP:填充数组中的“间隙”

时间:2010-03-31 22:11:54

标签: php arrays merge

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

Array
(
    [2] => 0,2
    [3] => 0,3
)

我需要一种方法来“填补”0-5范围之间的差距。所以上面看起来像(用'-1'填充空格。我尝试array_merge()一个数组填充'-1'但是没有用。

Array
(
    [0] => -1
    [1] => -1
    [2] => 0,2
    [3] => 0,3
    [4] => -1
    [5] => -1
)

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

干杯!

3 个答案:

答案 0 :(得分:7)

array_merge不起作用,但是'+'会起作用!

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

关键顺序错误,所以你可能想要ksort

答案 1 :(得分:5)

为什么不在循环中进行?

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

答案 2 :(得分:1)

如果数组是可变长度,则需要使用:

  for ($i = 0; $i <= sizeof($array); $i++)
    {
        if (!isset($array[$i]))
        {
            $array[$i] = -1;
        }
    }