我有一个接受可变数量参数的函数(这意味着我可以将X的参数放在该函数上:
MSETNX键值[键值...]
键和值都必须是字符串。假设我有另一个具有以下结构的数组:
$a = array( 'key1' => 'value1', 'key2' => 'value2', 'key3' => 'value3');
将$ a作为MSETNX函数的参数的最强有效方式是什么?
谢谢!
答案 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的建议使用它?