我正在使用我在php.net上找到的功能(我认为)根据值对数组进行排序
usort($comments, function ($a, $b) { return $b["date"] - $a["date"]; });
它应该把更新的日期放在第一位。在windows localhost上工作正常,在linux服务器上出错。为什么?谁能给我一个替代品?
答案 0 :(得分:3)
你可能正在使用PHP版本< 5.3在你的Linux上。匿名函数仅适用于最新的PHP版本。
function mySort($a, $b) { return $b["date"] - $a["date"]; }
usort($comments, 'mySort');
答案 1 :(得分:3)
可能是因为您的服务器不运行PHP 5.3并且lambda functions仅在此之后可用。你得到什么错误?
通常,代码看起来是正确的。 PHP的工作版本< 5.3将是:
function custom_sort($a, $b) {
return $b["date"] - $a["date"];
}
usort($comments, "custom_sort");
答案 2 :(得分:2)
我的猜测:你的Windows服务器正在运行PHP 5.3。您的Linux服务器运行的是旧版本。 PHP 5.3中添加了对匿名函数的支持。