首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在laravel-5.6中使用call_user_func_array()函数?

如何在laravel-5.6中使用call_user_func_array()函数?
EN

Stack Overflow用户
提问于 2019-05-02 13:47:16
回答 1查看 684关注 0票数 0

我使用的是github (https://gist.github.com/mcaskill/baaee44487653e1afc0d#file-function-array-group-by-php)代码,我使用的是laravel中的回购代码,而且我收到了错误。

错误:

ErrorException (E_WARNING) call_user_func_array()期望参数1是有效的回调、未找到的函数'array_group_by‘或无效的函数名

代码:

代码语言:javascript
复制
foreach ($grouped as $key => $value) {
    $params = array_merge([ $value ], array_slice($args, 2, func_num_args()));
    $grouped[$key] = call_user_func_array("array_group_by", $params);
}

在不知道如何在Laravel中使用这个函数之前,我还没有使用过call_user_func_array,我也尝试过$this->array_group_by,但是我得到了错误:

函数App\Http\Controllers\abcController::array_group_by(),1传入的参数太少。

EN

回答 1

Stack Overflow用户

发布于 2019-05-02 13:59:46

请将array_group_by()函数放在调用它之前,在代码中添加以下函数,或者在代码中使用此文件

代码语言:javascript
复制
function array_group_by(array $array, $key)
{
    if (!is_string($key) && !is_int($key) && !is_float($key) && !is_callable($key) ) {
        trigger_error('array_group_by(): The key should be a string, an integer, or a callback', E_USER_ERROR);
        return null;
    }
    $func = (!is_string($key) && is_callable($key) ? $key : null);
    $_key = $key;
    // Load the new array, splitting by the target key
    $grouped = [];
    foreach ($array as $value) {
        $key = null;
        if (is_callable($func)) {
            $key = call_user_func($func, $value);
        } elseif (is_object($value) && property_exists($value, $_key)) {
            $key = $value->{$_key};
        } elseif (isset($value[$_key])) {
            $key = $value[$_key];
        }
        if ($key === null) {
            continue;
        }
        $grouped[$key][] = $value;
    }
    // Recursively build a nested grouping if more parameters are supplied
    // Each grouped array value is grouped according to the next sequential key
    if (func_num_args() > 2) {
        $args = func_get_args();
        foreach ($grouped as $key => $value) {
            $params = array_merge([ $value ], array_slice($args, 2, func_num_args()));
            $grouped[$key] = call_user_func_array('array_group_by', $params);
        }
    }
    return $grouped;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55953911

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档