(для начинающих) Сортировка ассоциативного массива

imag777

Новичок
Доброго дня всем! Ткните, пожалуйста, носом, какую функцию читать в доках, уже запутался =(
Есть ассоциативный массив вида
array(6)
{
[0]=>
array(2)
{
["product_name"]=> string(4) "name"
["custom_attribute"]=> string(3) "hit"
}
[1]=>
array(2)
{
["product_name"]=> string(4) "name"
["custom_attribute"]=> string(3) "test"
}
[2]=>
array(2)
{
["product_name"]=> string(4) "name"
["custom_attribute"]=> string(3) "test"
}
[3]=>
array(2)
{
["product_name"]=> string(4) "name"
["custom_attribute"]=> string(3) "hit"
}

...и т.д.

Скажите, как можно отсортировать массив, чтобы сначала шли элементы, в которых custom_attribute = hit, и только после них custom_attribute = test
что-то типа аналога для сортировки в MySQL ORDER BY FIELD(custom_attribute, "hit", "test")
 

imag777

Новичок
Благодарю! Попробовал с usort, в доке пример очень хороший с фруктами, вроде бы получилось.
PHP:
function cmp($a, $b)
{
    return strcmp($b["custom_attribute"], $a["custom_attribute"]);
}
usort($array, "cmp");

while (list($key, $value) = each($array)) {
    echo "\$array[$key]: " . $value["custom_attribute"] . "\n";
}
Осталось теперь вместо бездумного копирования из доки понять, как это работает, чтобы в будущем вопросов не возникало :)
 
Сверху