使用变量对多维 php 数组进行排序(usort)

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];

            }

        );

它不起作用,我不确定为什么 - 我收到“未定义变量”错误。寻求帮助,谢谢


茅侃侃
浏览 112回答 1
1回答

千巷猫影

这是由于可变范围。$sortVariable在您的函数内部不可用。要使其对您的闭包可用,请使用use语言结构:$sortVariable='content_id';usort($list, function($a, $b) use ($sortVariable) {    return $a[$sortVariable] <=> $b[$sortVariable];});
打开App,查看更多内容
随时随地看视频慕课网APP