Seřazení multi-dimensionálního pole
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Wailey
- Člen | 48
Ahoj,
prosím Vás, nevíte někdo, jak setřídit takto složené pole?
array (3)
"ID_1" => array (2)
group => "Název skupiny" (39)
item => array (7)
"2006 - 2011" => array (3)
"2000 - 2011" => array (12)
"2003 - 2011" => array (3)
"2000 - 2006" => array (3)
"2000 - 2004" => array (6)
"2005 - 2009" => array (1)
"2000 - 2010" => array (3)
"ID_5" => array (2)
group => "Název skupiny 2" (29)
item => array (5)
"2000 - 2006" => array (2)
"2004 - 2008" => array (4)
"1998 - 2005" => array (2)
"2005 - 2009" => array (2)
"2000 - 2010" => array (2)
"ID_7" => array (2)
podle hodnoty v array[][„group“] a podle roku v year array[][„item“][„year“][]
Předem moc díky
Editoval Wailey (24. 6. 2015 15:50)
- Wailey
- Člen | 48
Vyřešeno!
foreach ($products as &$val) {
$sortarray[] = $val['group']; //vytvoření pole pro seřazení v multisort
krsort($val['item'], SORT_STRING); //seřazení podle klíče [rok] DESC podle stringu
}
array_multisort($sortarray,$products,SORT_DESC); //seřazení
Díky za nakopnutí :)
Editoval Wailey (24. 6. 2015 16:34)
- Wailey
- Člen | 48
Jelikož dostávám na svoji strukturu pole čím dál více Dis, chtěl bych
vědět proč a v čem je problém?
Vím, že cpát do klíče v asociativním poli dlouhý řetězec navíc
s mezery a není nejlepší nápad, a celkově dělat více než více
rozměrné pole také ne.
Jak tedy můžu jinak vykreslit seřazení produktů v tomto formátu podskupin
- group
- year
- items
- year
z presenteru to posílám do latte přes jednu proměnnou a tam to řeším přes vnořené foreach a doba vykreslení je minimální, budu rád za jakýkoliv feedback. Moc díky