0

我有一个 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参数或以不同的方式调用函数以使函数认为我正在传递内部数组?

谢谢

4

1 回答 1

2

您可以使用call_user_func_array来完成此操作。

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

call_user_func_array('cartesianProduct', $arrs);

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

于 2013-11-10T20:55:45.753 回答