说我有一个像这样的PHP数组。
array(2) { ["page"]=> string(1) "a" ["subpage"]=> string(4) "gaga" }
我想将此数组的内容传递给类似这样的函数的函数调用:
function doStuff($page, $subpage) {
// Do stuff
}
如何将这个数组分解为单个对象以传递给函数?该函数的变量将始终与数组中相应键的顺序相同。
答案 0 :(得分:2)
您可以使用array_values
将值从数组中取出,然后使用call_user_func_array
使用值数组作为参数来调用函数。
<?php
$input = array( 'page' => 'a', 'subpage' => 'gaga' );
$values = array_values($input);
$result = call_user_func_array('doStuff', $values);
或者,在较新版本的PHP(> = 5.6.x)中,可以通过...
运算符使用参数解压缩:
<?php
$input = array( 'page' => 'a', 'subpage' => 'gaga' );
$values = array_values($input);
$result = doStuff(...$values);
答案 1 :(得分:1)
您只需使用数组部分调用该函数:
doStuff($array['page'], $array['subpage']);
答案 2 :(得分:1)
如果您确定键的顺序,可以使用更新的...
运算符:
doStuff(...array_values($array));