私は、次のしているデータの並べ替えの私は、「標識」または「体重を使用して配列をソートしたいPHP「警告:usort()[function.usort]:無効な比較関数」連想配列として
array
'abc' =>
array
'label' => string 'abc' (length=3)
'weight' => float 3
'wsx' =>
array
'label' => string 'wsx' (length=3)
'weight' => float 1
'qay' =>
array
'label' => string 'qay' (length=3)
'weight' => float 1
'http://test.com' =>
array
'label' => string 'http://test.com' (length=15)
'weight' => float 0
'Nasi1' =>
array
'label' => string 'Nasi1' (length=5)
'weight' => float 0
'fax' =>
array
'label' => string 'fax' (length=3)
'weight' => float 4
「
ラベルのための機能を比較するには、次のとおりです。
function compare_label($a, $b)
{
return strnatcmp($a['label'], $b['label']);
}
と私はちょうど別の関数から関数を呼び出すより:
usort($label, 'compare_label');
var_dump($label);
しかし、エラーメッセージが表示され、配列はソートされません。私は、私が間違っていることは分かりません。
usort($label, 'compare_label');
をusort($label, compare_label);
usort($label, 'compare_label');
でusort($label, $this->compare_label);
で成功せず:私は交換することを試みました。誰かが私にヒントを与えることができますか?
はい、メンバ関数である、それは方法だ場合、あなたは少しそれを呼び出す方法を変更する必要があります....それは動作します! :) – cupakob