-
Migrace z Joomla 1.5, 2.5 a 3.x do nové Joomla 6
Bong ·
- X Online Joomla bar xunil ·
-
Phoca Cart - pluginy dopravy
H13 ·
-
Nový joomlaportal.cz
Linelabcz ·
-
Amanus - nová šablona Astroid frameworku podporující Phoca Cart
H13 ·
- X Claude Code a VS Code - kompromitace xunil ·
-
Phoca Download - verze 6.1.6 vydána
H13 ·
-
Phoca Cart - Booking
H13 ·
Vyřešeno řazení dvourozměrného pole
- Ernst
- Autor
- OFFLINE
- Joomla Expert
-
Méně
Více
- Příspěvky: 2380
20. srp 2015 18:08 - 20. srp 2015 18:13 #123104
od Ernst
řazení dvourozměrného pole od Ernst
potřebuji pole setřídit podle hodnoty v řádcích pole, např dle
$result["0"]->distance
pole se jmenuje result
PS pro upřesnění":
$result["0"]->distance =50
$result["1"]->distance =25
$result["2"]->distance =30
a já potřebuji aby bylo setříděno takto:
$result["0"]->distance =25
$result["1"]->distance =30
$result["2"]->distance =50
$result["0"]->distance
pole se jmenuje result
PS pro upřesnění":
$result["0"]->distance =50
$result["1"]->distance =25
$result["2"]->distance =30
a já potřebuji aby bylo setříděno takto:
$result["0"]->distance =25
$result["1"]->distance =30
$result["2"]->distance =50
- Cony
-
- Pryč
- Moderátor
-
Méně
Více
- Příspěvky: 5174
20. srp 2015 18:15 #123106
od Cony
Odpověď od Cony v tématu řazení dvourozměrného pole
Potřebujete funkci
usort
Poděkovali: Ernst
- Ernst
- Autor
- OFFLINE
- Joomla Expert
-
Méně
Více
- Příspěvky: 2380
20. srp 2015 18:21 #123107
od Ernst
Odpověď od Ernst v tématu řazení dvourozměrného pole
děkuji, tu jsem také četl, ale nepochopil, nešel by napsat příklad.
- Cony
-
- Pryč
- Moderátor
-
Méně
Více
- Příspěvky: 5174
20. srp 2015 18:35 #123108
od Cony
Odpověď od Cony v tématu řazení dvourozměrného pole
Vždyť ho máte v popisu té funkce, jen si ho lehce poupravit.
Code:
<?php
function cmp_result($a, $b)
{
if ($a->distance == $b->distance) {
return 0;
}
return ($a->distance < $b->distance) ? -1 : 1;
}
usort($result, "cmp");
?>
- Ernst
- Autor
- OFFLINE
- Joomla Expert
-
Méně
Více
- Příspěvky: 2380
20. srp 2015 19:05 #123109
od Ernst
Odpověď od Ernst v tématu řazení dvourozměrného pole
A´t zkouším, jak zkouším, nefunguje to.
Není chyba v usort($result, "cmp"); v tom "cmp"?
má to opravdu tak být?
Není chyba v usort($result, "cmp"); v tom "cmp"?
má to opravdu tak být?
- Cony
-
- Pryč
- Moderátor
-
Méně
Více
- Příspěvky: 5174
20. srp 2015 19:15 #123110
od Cony
Odpověď od Cony v tématu řazení dvourozměrného pole
pardon
Code:
usort($result, "cmp_result");
- Ernst
- Autor
- OFFLINE
- Joomla Expert
-
Méně
Více
- Příspěvky: 2380
20. srp 2015 19:20 - 20. srp 2015 19:22 #123111
od Ernst
Odpověď od Ernst v tématu řazení dvourozměrného pole
mezitím jsem si to taky uvědomil a opravil, ale netřídí to jak má, respektive netřídí vůbec
dám si pak var_dump ($result) a není to setříděno
dám si pak var_dump ($result) a není to setříděno
- Cony
-
- Pryč
- Moderátor
-
Méně
Více
- Příspěvky: 5174
20. srp 2015 19:44 #123112
od Cony
Odpověď od Cony v tématu řazení dvourozměrného pole
A jak vypadá celý Váš kód?
- Ernst
- Autor
- OFFLINE
- Joomla Expert
-
Méně
Více
- Příspěvky: 2380
20. srp 2015 20:58 #123113
od Ernst
Odpověď od Ernst v tématu řazení dvourozměrného pole
Stačí tenhle kousek:?
function cmp_result($a, $b)
{
if ($a->distance == $b->distance) {
return 0;
}
return ($a->distance < $b->distance) ? -1 : 1;
}
protected function _getList($query, $limitstart = 0, $limit = 0)
{
JLoader::register('TableProfile', LoveFactoryApplication::getInstance()->getPath('component_administrator').DS.'tables'.DS.'profile.php');
//var_dump ($query->select) ;
//echo $query->dump();
$this->_db->setQuery($query, $limitstart, $limit);
// var_dump ($this) ;
$result = array_values($this->_db->loadObjectList('user_id', 'TableProfile'));
//var_dump ($this->filterOrder["dist" ] ["column" ]) ;
echo ($result["0"]->distance) ;
usort($result, "cmp_result");
var_dump ($result) ;
return $result;
}
do tabulky results se uloží vásledky hledání dle nějakého pořadí.
Tam kde je to pole v databázi, není problém, ale pokud se jedná o vzdálenost, tak se dovypočte až do této tabulky a musím tu tabulku dle vzdálenosti přetřídit
function cmp_result($a, $b)
{
if ($a->distance == $b->distance) {
return 0;
}
return ($a->distance < $b->distance) ? -1 : 1;
}
protected function _getList($query, $limitstart = 0, $limit = 0)
{
JLoader::register('TableProfile', LoveFactoryApplication::getInstance()->getPath('component_administrator').DS.'tables'.DS.'profile.php');
//var_dump ($query->select) ;
//echo $query->dump();
$this->_db->setQuery($query, $limitstart, $limit);
// var_dump ($this) ;
$result = array_values($this->_db->loadObjectList('user_id', 'TableProfile'));
//var_dump ($this->filterOrder["dist" ] ["column" ]) ;
echo ($result["0"]->distance) ;
usort($result, "cmp_result");
var_dump ($result) ;
return $result;
}
do tabulky results se uloží vásledky hledání dle nějakého pořadí.
Tam kde je to pole v databázi, není problém, ale pokud se jedná o vzdálenost, tak se dovypočte až do této tabulky a musím tu tabulku dle vzdálenosti přetřídit
- Ernst
- Autor
- OFFLINE
- Joomla Expert
-
Méně
Více
- Příspěvky: 2380
20. srp 2015 21:03 #123114
od Ernst
Odpověď od Ernst v tématu řazení dvourozměrného pole
jestli není problém, že ta distance se musí vzít z každého pole a dle toho to třídit
- Ernst
- Autor
- OFFLINE
- Joomla Expert
-
Méně
Více
- Příspěvky: 2380
20. srp 2015 21:05 - 20. srp 2015 21:06 #123115
od Ernst
Odpověď od Ernst v tématu řazení dvourozměrného pole
tady to posílám celý,
tak neposílám, nejde přiložit soubor
tak neposílám, nejde přiložit soubor
- Cony
-
- Pryč
- Moderátor
-
Méně
Více
- Příspěvky: 5174
20. srp 2015 23:23 #123117
od Cony
Odpověď od Cony v tématu řazení dvourozměrného pole
Ne, v tom problém není, problém je v tom, že kód používáte v třídě a funkci cmp_result máte definovanou jako metodu třídy, ne jako samostatnou funkci.
Nahraďte volání usort takto
Nahraďte volání usort takto
Code:
usort($result, array($this,'cmp_result'));
Poděkovali: Ernst
- Ernst
- Autor
- OFFLINE
- Joomla Expert
-
Méně
Více
- Příspěvky: 2380
21. srp 2015 07:36 #123118
od Ernst
Odpověď od Ernst v tématu řazení dvourozměrného pole
Díky, teď je to OK a už jsem to i pochopil..
Když to budu chtít seřadit sestupně, musím to změnit v " return ($a->distance < $b->distance) ? -1 : 1;"?
Když to budu chtít seřadit sestupně, musím to změnit v " return ($a->distance < $b->distance) ? -1 : 1;"?
- Cony
-
- Pryč
- Moderátor
-
Méně
Více
- Příspěvky: 5174
21. srp 2015 10:58 #123119
od Cony
Odpověď od Cony v tématu řazení dvourozměrného pole
Ano.ernst napsal: Když to budu chtít seřadit sestupně, musím to změnit v " return ($a->distance < $b->distance) ? -1 : 1;"?
- Ernst
- Autor
- OFFLINE
- Joomla Expert
-
Méně
Více
- Příspěvky: 2380
21. srp 2015 16:59 #123125
od Ernst
Odpověď od Ernst v tématu řazení dvourozměrného pole
Díky moc za pomoc.
Změnil jsem na return ($a->distance < $b->distance) ? 1 : -1; a funguje to (je to tak správně?)
Změnil jsem na return ($a->distance < $b->distance) ? 1 : -1; a funguje to (je to tak správně?)
Vygenerováno za 0.150 sekund