PHP:在数组中填充空白

gkl3eglg  于 2023-06-04  发布在  PHP
关注(0)|答案(4)|浏览(697)

我有一个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
)

我想我可能已经走上了错误的道路,我试图解决的问题,但我已经投入了太多的时间在这个解决方案退出-一种感觉,我相信你们大多数人都熟悉(!)
干杯!

qv7cva1a

qv7cva1a1#

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

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

键的顺序是错误的,所以你可能想ksort它。

ohtdti5x

ohtdti5x2#

为什么不直接循环呢?

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

fv2wmkja3#

如果你的数组是可变长度的,你想用途:

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

w6lpcovy4#

user187291的启发,你可以使用array_replace()而不是array_fill()来获得正确的顺序,而无需使用ksort或循环:

$a = array_fill(0, 6, -1); // creates a "dummy"-array
$b = array_replace($a, array(2 => 22, 3 => 33)); // replaces the keys in the temporary dummy-array

相关问题