Autor | Zpráva | ||
---|---|---|---|
Trsak Profil |
Zdravím,
mám například následující objekt: array (3) 0 => stdClass #1145 name => "Useear" (6) parent => "Admin" (5) 1 => stdClass #32cc name => "__User164" (8) parent => "Moderator" (5) 2 => stdClass #54a3 name => "User165" (9) parent => "Admin" (7) A potřeboval bych to vše seřadit tak, aby prvně byly parent = Admin, pak parent = Moderator a nakonec parent = User, .. Jak na to? Zkoušel jsem následující: $col = 'parent'; $sort = array(); foreach ($admins as $i => $obj) { $sort[$i] = $obj->{$col}; } array_multisort($sort, SORT_ASC, $admins); Ale to seřadí podle parent abecedně |
||
juriad Profil |
#2 · Zasláno: 24. 8. 2015, 18:41:07
Jednoduše takto:
usort($pole, function($a, $b) {return strcmp($a->parent, $b->parent);}); |
||
Trsak Profil |
#3 · Zasláno: 24. 8. 2015, 18:44:26
To byl jen příklad, mám tam více parentů a abecedně to nevychází.
|
||
juriad Profil |
Aha, v tom případě zkus třeba:
usort($pole, function($a, $b) { $parents = array_flip(array('Admin', 'Moderator', 'User')); # toto každému parentovi přidějí číslo (uveď je v žádaném pořadí) return strcmp($parents[$a->parent], $parents[$b->parent]); }); $parents = array_flip(array('Admin', 'Moderator', 'User')); # toto každému parentovi přidějí číslo (uveď je v žádaném pořadí) usort($pole, function($a, $b) use ($parents) { return strcmp($parents[$a->parent], $parents[$b->parent]); }); |
||
Trsak Profil |
#5 · Zasláno: 24. 8. 2015, 18:56:53
Super! Díky moc
|
||
Časová prodleva: 9 let
|
0