PHP如何通过无限参数重叠进数组中

图片描述

如图所示,通过datainfo('a123456','pass456',['address'=>'chengdu'],['name'=>'jack']...)来传参,但令人头疼的是 我不知道如何将...$test的数组参数 中规中矩的放入$result['info'],求大神提下解决方案 (●ˇ∀ˇ●)

注意:$username和$password 后面的参数 数组键名是不固定的,可能下一次用这个函数又是传入另一个数组 ,所以不能写死

阅读 3.2k
3 个回答
function datainfo($username, $password, ...$test)
{
    $result['info'] = array_merge([
        'username' => $username,
        'password' => $password
    ], array_merge(...$test));

    return $result;
}

这种是属于不定长变参,你print_r一下$test就知道了,它其实是一个数组。

function datainfo($username, $password, ...$test)
{
    $result['info'] = [
        'username' => $username,
        'password' => $password
    ];

    foreach($test as $arr) {
        foreach($arr as $k => $v) {
            $result['info'][$k] = $v;
        }
    }

    return $result;
}

$ret = datainfo('a123456', 'pass456', ['address' => 'chengdu', 'age' => 22], ['name' => 'jack']);
var_dump($ret);

图片描述

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题