Mailinglisten-Archive |
> Hi, > > Michael Borchers wrote: >> Ich habs z zt wiefolgt gelöst: >> >> function compare($a, $b) { >> global $key; >> return strnatcasecmp($a[$key], $b[$key]); >> } >> $key = 'angebot_umsatz2'; >> >> usort($arr, "compare"); >> >> funzt auch, aber es gibt doch sicher ne hübschere methode als $key global >> zu >> setzen, oder?! > > Wenn der zweite Parameter ein Callback ist, kannst du doch ein Objekt > übergeben, dann brauchst du den globalen Namespace nicht zu verschmutzen. > > Sowas in der Art: > > $obj = new... > usort($arr, array($obj, "compare")); > > Unter php.net/callback gibt es glaub ich ein paar Infos dazu. Danke Martin, ich habe es in der Tat so gelöst in einer kleinen Klasse: <?php class arraySort { function multisort_array($array, $key) { if(is_array($array)) { $this->key = $key; usort($array, array(arraySort, 'compare_key')); return $array; } } function compare_key($a, $b) { return strnatcasecmp($a[$this->key], $a[$this->key]); } } ?>
php::bar PHP Wiki - Listenarchive