Как сортировать этот объект по 'pos' в php?
Array ( [0] => stdClass Object ( [str] => Mondays [pos] => 170 ) [1] => stdClass Object ( [str] => Tuesdays [pos] => 299 ) [2] => stdClass Object ( [str] => Wednesdays [pos] => 355 ) [3] => stdClass Object ( [str] => Thursdays [pos] => 469 ) [4] => stdClass Object ( [str] => Fridays [pos] => 645 ) [5] => stdClass Object ( [str] => Mondays [pos] => 972 ) [6] => stdClass Object ( [str] => Tuesdays [pos] => 1033 ) [7] => stdClass Object ( [str] => Thursdays [pos] => 1080 ) [8] => stdClass Object ( [str] => Fridays [pos] => 1180 )
)
Вероятно, вы можете использовать семейство функций usort () для сортировки на str
или pos
. Для этого вам нужно определить свою собственную функцию сравнения.
Пример псевдо-PHP:
function compareItems($a, $b) { if ( $a->pos < $b->pos ) return -1; if ( $a->pos > $b->pos ) return 1; return 0; // equality } uasort($yourArray, "compareItems");
В зависимости от ваших потребностей другие функции сравнения могут быть более уместными.
Попробуйте эту функцию
function objSort(&$objArray,$indexFunction,$sort_flags=0) { $indices = array(); foreach($objArray as $obj) { $indeces[] = $indexFunction($obj); } return array_multisort($indeces,$objArray,$sort_flags); }