3

コントローラーusort内で連想配列をソートするにはどうすればよいですか?symfony2

//sort
function compare($a, $b)
{
    return strnatcmp($a['sort'], $b['sort']);
}

usort($content, 'compare');

それは私に次のエラーを与えます:

警告: usort() は、パラメーター 2 が有効なコールバックであると想定しています。関数 'compare' が見つからないか、関数名が無効です

このように独自のプライベート関数に入れるのと同じように

// sort
usort($content, '$this->compare');

return $content;

}

//sort
private function compare($a, $b)
{
    return strnatcmp($a['sort'], $b['sort']);
}

これは変わらない

// sort 
usort($content, 'compare');

return $content;

}

//sort
private function compare($a, $b)
{
    return strnatcmp($a['sort'], $b['sort']);
}
4

2 に答える 2

7
usort($content, array($this, 'compare'));

これは、オブジェクトメソッドをコールバックとして渡す方法です。例については、コールバックを参照してください。

于 2013-01-11T15:37:50.047 に答える
5

関数を匿名で実装してみてください。

usort($content, function ($a, $b) {
    return strnatcmp($a['sort'], $b['sort']);
});

return $content;
于 2013-01-11T15:36:43.707 に答える