この Stackoverflow の回答は、そこまでの 95% です: https://stackoverflow.com/a/10484863。クロージャーを使用すると思われる関数に別の変数を渡す必要があるだけです。
変数ソートを渡したい:
$sort = get_category_name();
の中へ:
function compareByName($a, $b) {
return strcmp($a["name"], $b["name"]);
}
usort($a, 'compareByName');
したがって、その $a[$sort] であり、私が $a[key] として定義したものではありません。
私の配列:
Array(
[0] => Array
(
[id] => 7
[product_type_id] => 2
[category_en] => Prints
[category_es] => Impresiones
[category_ru] => Печати
)
[1] => Array
(
[id] => 8
[product_type_id] => 2
[category_en] => Drawings
[category_es] => Dibujos
[category_ru] => Рисунки
)
[2] => Array
(
[id] => 9
[product_type_id] => 2
[category_en] => Paintings
[category_es] => Pinturas/Cuadros
[category_ru] => Картины
)
)
get_category_name() によって設定されたユーザーの言語に基づいて、配列をカテゴリ別に並べ替えることができるようにする必要があります。