adott egy ilyen tombom
$tomb[$i] = array($rekord1, $rekord2);
ezt szeretnem a $rekord1 szerint rendezno csokeno sorrendben, d e elvereztem, igy probaltam:
$sorrend= array(0=>'asc', '1'=> 'desc', );
array_multisort($tomb, $sorrend);
while-lal listazom ki, de mindig az elso index ($tomb[eszerint]) listazza ki.
mit rontok el? (manualt olvastam es valszeg felreertettem, vagy csak egyszeruen keves vagyok hozza) :)
- 1007 megtekintés
Hozzászólások
Itt tartok:
$tomb[$i] = array('erd'=>$eredmeny, 'nev'=>$termek_nev);
function cmp ($a, $b)
{
return strcmp($a["erd"], $b["erd"]);
}
usort($tomb, "cmp");
while (list ($key, $val) = each ($tomb))
{
echo ($tomb[$key]['nev']." - ".$tomb[$key]['erd']."<br>\n");
}
Mar csak egy gaz van, hogy az 'erd' igazabol egy numerikus ertek es most a rendezes igy nez ki (listazasnal):
1
16
2
23
3
vagyis, nem numerikusan rendezi a script. (megorjit a butasagom...)
- A hozzászóláshoz be kell jelentkezni
Miért lepődsz meg, hogy sztringeket hasolít össze, ha strcmp
-val hasonlítasz össze?
A ksort($tomb, SORT_NUMERIC)
teljesen beteg eredményt ad?
- A hozzászóláshoz be kell jelentkezni
azt, mivel 2 dimenzios a tomb. bar lehet en hasznalom rosszul a fugvenyt.
- A hozzászóláshoz be kell jelentkezni
- return strcmp($a["erd"], $b["erd"])
+ if( $a[erd] > $b[erd])
+ return -1;
+ else
+ return 1;
- A hozzászóláshoz be kell jelentkezni
Bár ez már müködhet, de a hasonlító függvénynek illik 0-t visszaadnia, ha a két érték egyenlő
return $b[erd] - $a[erd];
- A hozzászóláshoz be kell jelentkezni