【问题标题】:Using a variable to sort multidimensional php array (usort) [duplicate]使用变量对多维php数组进行排序(usort)[重复]
【发布时间】:2020-05-24 11:48:55
【问题描述】:

这里有一些关于在 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 anonymous-function usort


    【解决方案1】:

    这是由于variable scope$sortVariable 在您的函数中不可用。要使其可用于您的关闭,请使用 use language construct:

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

    【讨论】:

    • 谢谢,我还以为是范围问题,太好了