SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Fortgeschrittene CSS-Techniken

Fortgeschrittene CSS-Techniken zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 01.11.2005, 16:23:48
MrLongbaugh MrLongbaugh ist offline
Anfänger
 
Registriert seit: May 2004
Beiträge: 90
Mehrdimensionales Array sortieren

Hallo,

das Sortieren von Arrays scheint immer wieder Thema zu sein. So auch bei mir.

Ich habe ein Array in der Form:

Code:
Array
(
    [0] => Array
        (
            [0] => Titel1
            [1] => 4
            [2] => 2
        )

    [1] => Array
        (
            [0] => Titel2
            [1] => 7
            [2] => 5
        )

    [2] => Array
        (
            [0] => Titel3
            [1] => 15
            [2] => 0
        )

    [3] => Array
        (
            [0] => Titel4
            [1] => 17
            [2] => 6
        )
)
Nun möchte ich das Array nach dem 2. Wert des zweiten Arrays sortieren.

Probiert habe ich das mit (Array steht in $data)

PHP-Code:
array_multisort ($data[2], SORT_ASCSORT_NUMERIC); 
Dies greift auf $data[2] zu und nicht auf $data[][2].

Wie kann ich nun aber danach sortieren?
Das Ergebnis sollte so aussehen:

Code:
Array
(
    [2] => Array
        (
            [0] => Titel3
            [1] => 15
            [2] => 0
        )

    [0] => Array
        (
            [0] => Titel1
            [1] => 4
            [2] => 2
        )

    [1] => Array
        (
            [0] => Titel2
            [1] => 7
            [2] => 5
        )

    [3] => Array
        (
            [0] => Titel4
            [1] => 17
            [2] => 6
        )
)
Mit Zitat antworten
  #2  
Alt 01.11.2005, 19:59:35
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
AW: Mehrdimensionales Array sortieren

Dafür musst du zunächst ein Array erstellen, das aus den jeweiligen Werten besteht:
PHP-Code:
<?php
    $sortArray 
= array();
    foreach(
$data as $key => $array) {
        
$sortArray[$key] = $array[2];
    }

    
array_multisort($sortArraySORT_ASCSORT_NUMERIC$data);
?>
Mit Zitat antworten
  #3  
Alt 02.11.2005, 10:58:25
MrLongbaugh MrLongbaugh ist offline
Anfänger
 
Registriert seit: May 2004
Beiträge: 90
AW: Mehrdimensionales Array sortieren

Hallo xabbuh,

danke für die Antwort.

Ich glaube, ich habe mein Problem sagen wir mal suboptimal beschrieben.
Hier nun ein neuer Versuch:

Das gegebene Array soll neu sortiert werden. Dabei soll sich die Reihenfolge der Arrays der ersten Dimension ändern. Das Sortierkriterium soll der zweite Wert der zweiten Dimension ( etwa so $data[][2), SORT_ASC, SORT_NUMERIC) sein. Diesen kann ich jedoch per Multisort nicht ansprechen.

Die Reihenfolge der Array[1]- Array[5]wie die Zielvorgabe s.o.

Ich hoffe mich nun verständlicher ausgedrückt zu haben.

Danke für die Geduld
Mit Zitat antworten
  #4  
Alt 02.11.2005, 13:13:10
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
AW: Mehrdimensionales Array sortieren

Genau das sollte mein Script auch tun. Hast du es mal getestet?
Mit Zitat antworten
  #5  
Alt 02.11.2005, 13:51:12
MrLongbaugh MrLongbaugh ist offline
Anfänger
 
Registriert seit: May 2004
Beiträge: 90
AW: Mehrdimensionales Array sortieren

mea culpa, mea maxima culpa.

Danke.
Genau so funktionierts.
Genau verstanden habe ich das ehrlich gesagt noch nicht, muss es mir noch mal in Ruhe ansehen.

Danke für Deine Mühe.
Mit Zitat antworten
  #6  
Alt 08.10.2007, 16:02:25
evil_knievel evil_knievel ist offline
Anfänger
 
Registriert seit: Oct 2007
Beiträge: 5
AW: Mehrdimensionales Array sortieren

Hallo,

dieser Thread ist zwar ziemlich alt, aber ich habe genau das gleiche Problem, nur diese Lösung funktioniert bei mir nicht.

Mein Array heisst arr_prodopt und sieht ähnlich aus (blaah sind irgendwelche Werte)

Array
(
[0] => Array
(
[0] => blaah
[1] => blaah
[2] => blaah
[3] => blaah
[4] => blaah
[5] => blaah
[6] => 127
[7] => blaah
)

[1] => Array
(
[0] => blaah
[1] => blaah
[2] => blaah
[3] => blaah
[4] => blaah
[5] => blaah
[6] => 629
[7] => blaah
)

[2] => Array
(
[0] => blaah
[1] => blaah
[2] => blaah
[3] => blaah
[4] => blaah
[5] => blaah
[6] => 42
[7] => blaah
)
usw ...
)

Nun will ich sortieren:

PHP-Code:
    $sort_prodopt = array();
    foreach(
$arr_prodopt as $key => $array) { 
        
$sort_prodopt[$key] = $array[6]; 
    } 

    
array_multisort($sort_prodoptSORT_ASCSORT_NUMERIC$arr_prodopt); 
aber das geht nicht.

Kann mir vielleicht jemand sagen was ich falsch mache?
Mit Zitat antworten
  #7  
Alt 08.10.2007, 17:13:34
rambi
Guest
 
Beiträge: n/a
AW: Mehrdimensionales Array sortieren

Nöö..
Ich verwende für sowas meist usort()....
Mit Zitat antworten
  #8  
Alt 09.10.2007, 10:34:50
evil_knievel evil_knievel ist offline
Anfänger
 
Registriert seit: Oct 2007
Beiträge: 5
AW: Mehrdimensionales Array sortieren

OK OK,

habe Usort probiert aber wie es halt so ist funktioniert es nicht ganz:

PHP-Code:
function _compare($a$b) {
return (
$a == $b strcmp($a[5], $b[5]) : strcmp($a[6], $b[6]));
}

array ...

usort($arr_prodopt"_compare"); 
1. sortiert er für mich falsche (z.B. kommt 50 nach 490) : 1, 10, 2, 20 ... 490, 50
liegt das an strcmp, weil es für Strings ist? Habe für Integer bzw Zahlen da nichts gefunden.

2. wie sortiere ich erst nach Stelle 6 und dann nach Stelle 5 vom Array:

Beispiel:

array (blaah, blaah, blaah, blaah, blaah, 2, 100)
array (blaah, blaah, blaah, blaah, blaah, 1, 100)
array (blaah, blaah, blaah, blaah, blaah, 20, 50)
array (blaah, blaah, blaah, blaah, blaah, 10, 50)

mit dem Ergebnis:

array (blaah, blaah, blaah, blaah, blaah, 10, 50)
array (blaah, blaah, blaah, blaah, blaah, 20, 50)
array (blaah, blaah, blaah, blaah, blaah, 1, 100)
array (blaah, blaah, blaah, blaah, blaah, 2, 100)
Mit Zitat antworten
  #9  
Alt 09.10.2007, 10:40:06
evil_knievel evil_knievel ist offline
Anfänger
 
Registriert seit: Oct 2007
Beiträge: 5
AW: Mehrdimensionales Array sortieren

Hab einen besseren Code gefunden, damit ist Prob 1 gelöst, aber Prob 2 leider noch nicht:

PHP-Code:
function cmp ($a$b) {return $a[6] > $b[6]; } 
Mit Zitat antworten
  #10  
Alt 09.10.2007, 10:52:13
evil_knievel evil_knievel ist offline
Anfänger
 
Registriert seit: Oct 2007
Beiträge: 5
AW: Mehrdimensionales Array sortieren

Ich habs, für alle die es interessiert:

PHP-Code:
function _cmp ($a$b
{    
   if ( 
$a[5] == $b[5] )
   {     
        if (
$a[6] == $b[6]) 
            return 
0;
        else
           return ( 
$a[6] < $b[6] ) ? -: +1;
    }
    else
        return ( 
$a[5] < $b[5] ) ? -: +1;

Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
mehrdimensionales array - MySQL database vertigoricen PHP Grundlagen 1 17.08.2005 09:20:28
Mehrdimensionales Array sortieren Heppi PHP Grundlagen 21 22.02.2005 13:01:32
Einzelne Daten aus Textdatei Auslesen azubinator PHP Grundlagen 153 17.12.2004 14:36:58
mehrdimensionales Array sortieren blaue-sau PHP Grundlagen 2 18.09.2003 22:02:15
Wie sortiere ich ein mehrdimensionales Array sinfo PHP für Fortgeschrittene und Experten 1 09.07.2003 12:28:38


Alle Zeitangaben in WEZ +2. Es ist jetzt 05:43:39 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt