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 に答える