函数期待数组,但我想传递一个变量

时间:2013-11-10 20:52:31

标签: php arrays parameters parameter-passing

我有一个PHP函数,期望将未知数量的数组作为参数。

function cartesianProduct() { ... }

期待我做这样的事情:

cartesianProduct(
  array('blue', 'green', 'red'),
  array('apples', 'oranges', 'bananas')  
);

但是我正在预先构建数组并且无法将它们传入。
例如:

$arrs = array(
  array('blue', 'green', 'red'),
  array('apples', 'oranges', 'bananas')
);
cartesianProduct($arrs);

以这种方式传入数组不起作用 - 显然它将它视为一个单独的数组参数。

如何'扩展'我的$arrs参数或以不同的方式调用函数以使函数认为我正在传递内部数组?

由于

1 个答案:

答案 0 :(得分:2)

您可以使用call_user_func_array来完成此任务。

$arrs = array(
    array('blue', 'green', 'red'),
    array('apples', 'oranges', 'bananas')
);

call_user_func_array('cartesianProduct', $arrs);

第一个参数是您要调用的函数名称,第二个参数是将传递给它的索引参数数组。