php变量参数

时间:2011-01-09 07:05:24

标签: php

我有一个接受可变数量参数的函数(这意味着我可以将X的参数放在该函数上:

  

MSETNX键值[键值...]

键和值都必须是字符串。假设我有另一个具有以下结构的数组:

$a = array( 'key1' => 'value1', 'key2' => 'value2', 'key3' => 'value3');

将$ a作为MSETNX函数的参数的最强有效方式是什么?

谢谢!

3 个答案:

答案 0 :(得分:1)

如果函数必须采用varargs,而不是只接受数组,

foreach($a as $k => $v) {
  $b[] = $k;
  $b[] = $v;
}
call_user_func_array('MSETNX', $b);

答案 1 :(得分:0)

最有效的方法是简单地传递数组,EG: MSETNX($a);

答案 2 :(得分:0)

关于字符串输入的必要性,问题有点不清楚;

如果您需要将整个参数作为单个字符串,请使用:

MSETNX(http_build_query($a));

如果您需要将每个元素(键和值)转换为字符串,请尝试以下方法:

MSETNX(array_combine(
    array_map(array_keys($a),"strval"),
    array_map(array_values($a),"strval")
));

对我来说似乎没什么特别有用,但也许你可以结合Amber的建议使用它?