Ergebnis 1 bis 5 von 5

Thema: arsort() und ksort() kombinieren?

  1. #1
    Kaiserliche Hoheit
    Registriert seit
    15.07.2005
    Ort
    Hagen (NRW)
    Beiträge
    1.515
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard arsort() und ksort() kombinieren?

    Sprache: PHP 4

    Zu meinem "Problem":

    ich suche eine Funktion die einen Array zunächst aufsteigend nach $key und dann absteigend nach $value sortiert ohne dabei die aufsteigende sortierung nach $key zu zerstören.

    Quasi eine Funktion die diesen beispielarray sortiert:

    Code:
    $array = array(
      "Foren" => 2,
      "Autos" => 2,
      "Katzen" => 3,
      "Luftballons" => 1,
      "Hunde" => 1,
    )
    das er danach so aussieht:

    Code:
    $array = array(
      "Katzen" => 3,
      "Autos" => 2,
      "Foren" => 2,
      "Hunde" => 1,
      "Luftballons" => 1,
    )
    wenn ich zuerst ksort($array); und dann arsort($array); verwende ist der array leider nicht mehr nach $key sortiert :/

    Kann mir da jemand einen Tipp geben?
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!
    Zoggerforum.de Betreuer * Mod @ ibforen.de * Admin @ daoc-ds.de
    ICQ Nummer kann via PN erfragt werden

  2. #2
    Forum Guru
    Registriert seit
    28.12.2004
    Ort
    Ringgenberg(bei Interlaken) / Schweiz
    Beiträge
    4.787
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    tja da must du wohl mittels foreach die array auseinander nehmen und

    mittels in_array nach doppelten keys suchen und dann alles fein säuberlich neu sortieren. Ich kenne jetzt auf jedne fall keine fertige funktion.

  3. #3
    Kaiserliche Hoheit
    Themenstarter

    Registriert seit
    15.07.2005
    Ort
    Hagen (NRW)
    Beiträge
    1.515
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    doppelte Keys gibts nicht, das ist in einem array auch gar nicht möglich, ich dachte eher an eine fertige callback Funktion, aber wenn keiner eine fertige gefunden hat werd ich einen Umweg machen über meine sort_by_field() Funktion:

    Code:
        /**
        * Diese Funktion gehört zu {@link sort_by_field() sort_by_field()}
        */
        
       	function __sf_cmp($a,$b) {
      		global $__sf_order;
      		$result=0;
      		foreach($__sf_order as $field=>$order) {
      			if(strtoupper($a[$field]) > strtoupper($b[$field])) {
      				$result=1;
      			&#125; elseif &#40;strtoupper&#40;$a&#91;$field&#93;&#41; < strtoupper&#40;$b&#91;$field&#93;&#41;&#41; &#123;
      				$result=-1;
      			&#125;
      			if&#40;$order=="DESC"&#41; $result=-$result;
      			if&#40;$result!=0&#41; break;
      		&#125;
      		return $result;
      	&#125;
    
        /**
        * Diese Funktion kann einen mehrdimensionalen Array sortieren
        *
        * Beispiel&#58;
        * $array = 
        * array&#40;
    
        *     "0" => array&#40; "name" => "Zeppelin" &#41;,
    
        *     "1" => array&#40; "name" => "Auto" &#41;,
    
        *     "2" => array&#40; "name" => "Flugzeug" &#41;
    
        *      &#41;
    
        *
        * ergibt nach sort_by_field&#40;$array, array&#40;"name" => "ASC"&#41;&#41;;&#58;
    
        * array&#40;
    
        *     "0" => array&#40; "name" => "Auto" &#41;,
    
        *     "1" => array&#40; "name" => "Flugzeug" &#41;
    
        *     "2" => array&#40; "name" => "Zeppelin" &#41;,
        
        *      &#41;
    
        *
        * @see __sf_cmp&#40;&#41;
        */
        
      	function sort_by_field&#40;&$a,$fields&#41; &#123;
      		global $__sf_order;
      		$__sf_order=$fields;
      		usort&#40;$a,'__sf_cmp'&#41;;		
      	&#125;
    Zoggerforum.de Betreuer * Mod @ ibforen.de * Admin @ daoc-ds.de
    ICQ Nummer kann via PN erfragt werden

  4. #4
    Forum Guru
    Registriert seit
    28.12.2004
    Ort
    Ringgenberg(bei Interlaken) / Schweiz
    Beiträge
    4.787
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    aso mit unter array.

    Und ich meinte doppelte Values

  5. #5
    Kaiserliche Hoheit
    Themenstarter

    Registriert seit
    15.07.2005
    Ort
    Hagen (NRW)
    Beiträge
    1.515
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    ich habs nun gelöst, wenn noch jemand das Problem hat kann ich den code nochmal raussuchen

    (Lösung ist sicher nicht optimal und eher dirty programming aber er funktioniert)
    Zoggerforum.de Betreuer * Mod @ ibforen.de * Admin @ daoc-ds.de
    ICQ Nummer kann via PN erfragt werden

Ähnliche Themen

  1. Selectform Kombinieren
    Von Sea-Kay im Forum HTML & CSS Forum
    Antworten: 1
    Letzter Beitrag: 25.10.2007, 11:06
  2. beide 'names' kombinieren
    Von Gast im Forum HTML & CSS Forum
    Antworten: 4
    Letzter Beitrag: 21.10.2007, 01:38
  3. Image Map mit Iframes kombinieren
    Von Katie001 im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 1
    Letzter Beitrag: 08.04.2007, 13:37
  4. Zwei Kindergippen kombinieren???
    Von Johannes im Forum Off Topic und Quasselbox
    Antworten: 2
    Letzter Beitrag: 29.06.2006, 22:15
  5. domain und projekt kombinieren
    Von Randy0902 im Forum HTML & CSS Forum
    Antworten: 1
    Letzter Beitrag: 26.02.2006, 11:32

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •