PHP轻松将数组分解为单个变量以传递给函数

时间:2018-08-14 18:45:09

标签: php arrays

说我有一个像这样的PHP数组。

array(2) { ["page"]=> string(1) "a" ["subpage"]=> string(4) "gaga" }

我想将此数组的内容传递给类似这样的函数的函数调用:

function doStuff($page, $subpage) {
 // Do stuff
}

如何将这个数组分解为单个对象以传递给函数?该函数的变量将始终与数组中相应键的顺序相同。

3 个答案:

答案 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));