如何将可变数量的参数传递给PHP中的函数

时间:2011-03-23 08:04:51

标签: php arrays function

我有这个多维数组(称为$ values):

Array
(
    [0] => Array
        (
            [0] => 5
            [1] => 2
            [2] => 5
            [3] => 6
        )

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

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

    [3] => Array
        (
            [0] => 9
            [1] => 5
            [2] => 3
            [3] => 2
        )
)

我想使用diff PHP函数计算此多维数组的每个元素(数组)之间的array_diff。我首先想到的是将多维数组拆分为单个数组:

for($cnt = 0; $cnt < count($values); $cnt++){
        for($cntB = 0; $cntB < 4; $cntB++){
            ${'arr'.$cnt}[] = $values[$cnt][$cntB];
        }
    }

在此之后,我有几个名为$arr1$arr2的数组,依此类推。由于数组$values的维度可能会有所不同(并且它会),我无法找到将所有生成的单个数组传递给函数array_diff的方法,

有什么想法吗?

提前致谢。

3 个答案:

答案 0 :(得分:5)

不确定这是否是您想要的,因为我没有阅读所有内容,但请查看:

call_user_func_array('array_diff', $values)

也许这就是你想要的。

答案 1 :(得分:0)

function diff() {
    $args = func_get_args();

    // $args how has all the arrays you passed in.
}

答案 2 :(得分:0)

而不是

${'arr'.$cnt}[] = ...

使用

$arr[$cnt][] = ...

问题解决了。 :)

当你真正想要的是一个数组时,不需要变量变量。