Задать вопрос
@siroper

Как отсортировать массив — stdclass по значению ключа?

Здравствуйте. Имеется массив $variants
print_r массива:

Array
(
    [0] => stdClass Object
        (
            [id] => 84
            [product_id] => 48
            [price] => 277.00
            [compare_price] => 300.00
            [name] => Яблочный
        )

    [1] => stdClass Object
        (
            [id] => 58
            [product_id] => 43
            [price] => 277.00
            [compare_price] => 1233.00
            [name] => Черный
        )

    [2] => stdClass Object
        (
            [id] => 85
            [product_id] => 48
            [price] => 277.00
            [compare_price] => 413.00
            [name] => Малахитовый
        )
)


Подскажите пожалуйста как отсортировать массив по [name], сохранив структуру?

Пробовал
function cmp_function($a, $b){
	return ($a['name'] > $b['name']);
}
uasort($variants, 'cmp_function');


Выдает соответсвенно Fatal error: Cannot use object of type stdClass as array т.к. тут stdClass
  • Вопрос задан
  • 111 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 2
iNickolay
@iNickolay
function cmp_function($a, $b) {
  return ($a->name > $b->name);
}
uasort($variants, 'cmp_function');
Ответ написан
0xD34F
@0xD34F
usort($variants, function($a, $b) {
  return strcmp($a->name, $b->name);
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы