如何合并多个函数的返回值?

时间:2017-05-09 14:26:28

标签: php arrays merge

如何合并多个函数的返回值?

我将我的选项数组放在函数中,这样我就可以更容易地调用这些函数(数组),因为它们在不同的位置需要不止一次。

我想在自己的函数中运行我的不同数组选项。

这样做的原因是我可以允许开发人员在扩展时选择他们想要使用的那些函数的数组,但同时保持函数简单,而不是将所有数组值放在一个冗长的函数中。

所以我只是想知道有没有像array_merge那样的函数,我可以合并多个函数的返回值?

这是我正在做的一个例子......

function One() {

    $var = array(1,2);

    return $var;

}

function Two() {

    $var = array(3,4);

    return $var;

}

// Like array merge I would like to merge the returned values of the functions
// Like $var = function_merge('One', 'Two');

所以你的价值就像array_merge();

示例:$ var = array(1,2,3,4);

4 个答案:

答案 0 :(得分:0)

嗯......也许还有其他一些想法?

我认为我是在思考这个问题。只想将每个函数存储在$ var中然后合并那些$ vars

喜欢......

$var_1 = One();
$var_2 = Two();

$output = array_merge($var_1, $var_2);

print_r($output);

//返回

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
)

答案 1 :(得分:0)

array_merge()方法本身中调用返回数组的函数。像这样:

$var = array_merge(One(), Two());

或者,为了解决@manian提出的问题,请使用:

$var = array_merge(array_values(One()), array_values(Two()));
// array_values() removes and resets an array's indexes

这将返回

    Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
)

答案 2 :(得分:0)

用于静态用法

function function_merge($fnc1, $fnc2) {
    return array_merge($fnc1(), $fnc2());
}
//use => function_merge('one', 'two');

用于动态使用

function function_merge() {
    $arguments = func_get_args();
    $result = [];
    if (is_array($arguments) && (count($arguments) > 0)) {
        foreach ($arguments as $fnc) {
            if (function_exists($fnc)) {
                $result = array_merge($result, $fnc());
            }
        }
    }
    return $result;
}
//use => function_merge('one', 'two', 'three', 'four');
//use => function_merge('vegas', 'newyork', 'ohio');

答案 3 :(得分:0)

以下是您要求的方法,

$merged = array();
function One($merged) {
  $var = array(1,2);
  return array_merge($merged, $var);
}

function Two($merged) {
  $var = array(3,4);
  return array_merge($merged, $var);
}
$merged = One($merged);
$merged = Two($merged);

print_r($merged);