2016-12-15 3 views
0

У меня есть массив строк из запроса MySQL. Мне нужно выполнить сортировку по одному из полей (unsigned int type). Я просмотрел ссылку, но не понял, как именно я сортирую массивы объектов, потому что PHP, похоже, не имеет чего-то вроде перегрузки оператора (что вы делаете на C++), а некоторые существующие функции говорят, что они неустойчивы, что означает 2 равных элемента, их позиция в отсортированном массиве не определена, что звучит действительно странно. Итак, каков общий подход в PHP, когда вам нужно сортировать массив объектов?Как отсортировать массив объектов по полю объекта в PHP?

+0

[usort()] (http://www.php.net/manual/en/function.usort.php) –

+0

http://stackoverflow.com/questions/8456029/how-does-usort-work –

ответ

1

Вам нужно будет написать свою собственную функцию для сравнения. Если у вас есть эта функция, вы можете использовать usort - http://php.net/manual/en/function.usort.php

Обратите внимание, что это также работает с сортировкой массива объектов, вам просто нужно изменить функцию сравнения.

+0

Что такое _ Если два члена сравниваются как равные, их относительный порядок в отсортированном массиве не определен ._ ?? Могу ли я сделать так, чтобы моя функция сравнения никогда не возвращала 0 и действует просто как оператор «<»? –

+0

Конечно, вы можете. Вся функция usort() заботится о том, что она может передать 2 вещи вашей функции и возвращает -1, 1 или 0. Просто решите, хотите ли вы, чтобы равные значения всегда возвращались как «меньше» или «больше», и пойти на это :) – ivanivan

Смежные вопросы