1

为什么不对usort()数组进行排序?

if ( is_array( $tables ) ) {
    usort( $tables, 'sort' );
} else {
    echo "no array";
}

我总是收到这个警告:

sort() 期望参数 1 是数组,给定字符串

所以php认为它是一个数组但usort()不是

继承人排序功能:

function sort( $a, $b ) {
    return strlen( $b ) - strlen( $a );
}
4

1 回答 1

3

注意错误说sort() expects,不是usort() expects。那是因为 PHP 将回调解释usort为内置sort()方法(它期望第一个参数是一个数组),而不是您的sort()方法。

尝试将您的方法重命名为其他名称,例如my_sort.

function my_sort( $a, $b ) {
    return strlen( $b ) - strlen( $a );
}

if ( is_array( $tables ) ) {
    usort( $tables, 'my_sort' );
} else {
    echo "no array";
}
于 2012-05-10T22:06:24.593 回答