这是:
usort($newarr, "cmp");
function cmp($a, $b)
{ return 0; }
问题很简单:它不会通过提供此警告消息对数组进行排序
Warning: usort() expects parameter 2 to be a valid callback, function 'cmp' not found or invalid function name
我在这里阅读了这个答案PHP usort won't sort
但它对我没有任何意义,我没有像在答案1中解释的那样的课程(我甚至不需要任何课程,我试过用这个,这个,这个, “myclass”,但它根本不起作用):
usort($items, array("MyClass", "compare_method"));
答案 0 :(得分:1)
更改脚本流程,当您尝试对数组进行排序时cmp
尚不存在。所以,这应该有效:
function cmp($a, $b)
{ return 0; }
usort($newarr, "cmp");
答案 1 :(得分:1)
根据您在问题中发布的信息,无法明确说明为什么它对您不起作用。
代码通常可以正常工作,它完全没问题(Demo):
<?php
$newarr = array();
if (!function_exists('cmp')) echo "cmp() not defined yet.\n";
usort($newarr, "cmp");
function cmp($a, $b)
{ return 0; }
我建议您在问题中添加更多信息,以便更好地说明实际问题的位置。
答案 2 :(得分:0)
使用anonymous functions(或create_function
)创建与cmp
类似的匿名函数,然后将其传递给usort
。
示例:
usort($newarr, function($a, $b) {
return 0;
});