使用变量对多维的php数组进行排序(usort)[重复]。

问题描述 投票:0回答:1

在SO上有一些帖子涉及到在php中对多维数组进行排序的问题,我可以在使用时让它正常工作。

usort($list, function($a, $b)
            {
                return $a['content_id'] <=> $b['content_id'];
            }
        );

但是我找不到任何关于使用变量排序的参考。当我尝试使用一个变量时,我得到一个错误,例如在这个例子中。

    $sortVariable='content_id';
    usort($list, function($a, $b)
            {
                return $a[$sortVariable] <=> $b[$sortVariable];
            }
        );

它不能工作,我不知道为什么 - 我得到了 "未定义变量 "的错误。希望得到帮助,谢谢

php variables multidimensional-array usort
1个回答
1
投票

这是因为 可变范围. $sortVariable 在您的函数中是不可用的。要使它在您的闭包中可用,请使用 use 语言结构:

$sortVariable='content_id';
usort($list, function($a, $b) use ($sortVariable) {
    return $a[$sortVariable] <=> $b[$sortVariable];
});
© www.soinside.com 2019 - 2024. All rights reserved.