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 ::

Der CSS-Problemlöser

Der CSS-Problemlöser 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 28.11.2008, 10:47:28
sinfo sinfo ist offline
Anfänger
 
Registriert seit: May 2003
Beiträge: 106
Mehrdimensionales Array sortieren

Hallo,

Ich habe im Internet und in diesem Forum recherchiert und konnte leider keine Antwort finden. Die Antworten in dem folgenden Thread verstehe ich leider nicht bzw. diese Funktionieren nicht:

http://www.selfphp.de/forum/showthre...rray+sortieren

Meine Frage

Wie sortiere ich ein mehrdimensionales Array?

Beispiel

Das Array hat den Namen "$websites_array". Die folgenden Werte gebe ich aus über

print_r($websites_array);

Code:
Array 	(
	[0] => Array 
	      ( [0] => 118 
		[1] => Tango 
                [2] => http://tango.sport-scout.info ) 
        [1] => Array 
	      ( [0] => 119 
                [1] => Drachenboot 
                [2] => http://drachenboot.sport-scout.info ) 
	[2] => Array 
	      ( [0] => 122 
	        [1] => Health Communication 
                [2] => http://www.health-communication.info ) 
	 )
Jetzt möchte ich das Array z. B. nach der ID oder dem Namen oder der URL sortieren ...

HELP!
Mit Zitat antworten
  #2  
Alt 28.11.2008, 11:18:29
Crisps Crisps ist offline
Junior Member
 
Registriert seit: Oct 2008
Alter: 47
Beiträge: 274
AW: Mehrdimensionales Array sortieren

Werden diese Daten nicht aus einer Datenbank abgefragt? Dann könnte man nämlich die Sortierung schon dort vornehmen.
Mit Zitat antworten
  #3  
Alt 28.11.2008, 11:23:19
sinfo sinfo ist offline
Anfänger
 
Registriert seit: May 2003
Beiträge: 106
AW: Mehrdimensionales Array sortieren

Ja. Das war mein erster Gedanke. Tja. Das Beispiel ist vereinfacht. Meine Tabelle hat 10 Spalten mit Werten, die aus drei Tabellen kommen und nur MySQL 4. Leider wäre eine MySQL-Abfrage der komplexe und deutlich fehlerhaftere Weg.

P.S. Mit zwei Tabellen habe ich hier eine Antwort für eine funktionierende SQL-Abfrage erhalten.
http://www.selfphp.de/forum/showthread.php?t=20512
Vielen Dank dafür! Mit drei Tabellen wurde mir SQL zu komplex.

Geändert von sinfo (28.11.2008 um 11:28:46 Uhr) Grund: SQL
Mit Zitat antworten
  #4  
Alt 28.11.2008, 12:22:33
Crisps Crisps ist offline
Junior Member
 
Registriert seit: Oct 2008
Alter: 47
Beiträge: 274
AW: Mehrdimensionales Array sortieren

Ich arbeite mehr mit MySQL und kenne mich nicht immer 100% mit PHP aus, aber das hier sollte gehen:
PHP-Code:
foreach ($websites_array as $key => $row) {

    
$id[$key]  = $row[0];
    
$name[$key] = $row[1];
    
$url[$key] = $row[2];
    
}

array_multisort($nameSORT_DESC$websites_array);
// Sortiert z.B. den Namen absteigend (SORT_ASC für aufsteigend)


//url sortieren: array_multisort($url, SORT_DESC, $websites_array);
//id sortieren: array_multisort($id, SORT_DESC, $websites_array); 

Geändert von Crisps (28.11.2008 um 12:23:08 Uhr)
Mit Zitat antworten
  #5  
Alt 28.11.2008, 12:23:48
cortex cortex ist offline
SELFPHP Profi
 
Registriert seit: Apr 2008
Alter: 48
Beiträge: 1.938
AW: Mehrdimensionales Array sortieren

schau dir mal array_multisort( ) an:

http://de3.php.net/manual/de/functio...-multisort.php

insbesondere beispiel #3.

cx
Mit Zitat antworten
  #6  
Alt 28.11.2008, 13:33:46
sinfo sinfo ist offline
Anfänger
 
Registriert seit: May 2003
Beiträge: 106
AW: Mehrdimensionales Array sortieren

@crisp @cortext
Hi, funktioniert leider nicht. Ich weis nicht warum.

Die Sortierung des Arrays vor und nach der (angestrebten) Sortierung hat sich nicht geändert. Ich weiß einfach nicht weiter. Das gibt es doch nicht ..

Code:
print_r($websites_array);

/* */
foreach ($websites_array as $key => $row) 
	{
$id[$key]  			= $row[0];
$name[$key] 			= $row[1];
$url[$key] 			= $row[2]; 
$pagerank[$key] 		= $row[3]; 	
$backlinks[$key] 		= $row[4]; 
$outboundlinks[$key] 	= $row[5];
$anzahl_links_int[$key]      = $row[6];
$anzahl_links_ext[$key]     = $row[7];
$linkdichte[$key] 		= $row[8];
$datum[$key] 			= $row[9];
$status[$key] 			= $row[10];
	
	}	
array_multisort($name, SORT_ASC, $websites_array);

print_r($websites_array);
Vorher:
Code:
Array
(
    [0] => Array
        (
            [0] => 118
            [1] => Tango
            [2] => http://tango.sport-scout.info
            [3] => -1
            [4] => 0
            [5] => 1
            [6] => 8
            [7] => 1
            [8] => 89
            [9] => 28.11.2008
            [10] => HTTP/1.1 200 OK
        )

    [1] => Array
        (
            [0] => 119
            [1] => Drachenboot
            [2] => http://drachenboot.sport-scout.info
            [3] => 5
            [4] => 0
            [5] => 0
            [6] => 304
            [7] => 13
            [8] => 96
            [9] => 28.11.2008
            [10] => HTTP/1.1 301
        )

    [2] => Array
        (
            [0] => 122
            [1] => Health Communication
            [2] => http://www.health-communication.info
            [3] => 5
            [4] => 0
            [5] => 0
            [6] => 0
            [7] => 2
            [8] => 0
            [9] => 27.11.2008
            [10] => HTTP/1.1 200 OK
        )

    [3] => Array
        (
            [0] => 117
            [1] => Sportwissenschaften
            [2] => http://www.sportwissenschaften.info
            [3] => 6
            [4] => 0
            [5] => 0
            [6] => 54
            [7] => 19
            [8] => 74
            [9] => 27.11.2008
            [10] => HTTP/1.1 200 OK
        )

    [4] => Array
        (
            [0] => 116
            [1] => Sport-Scout
            [2] => http://www.sport-scout.info
            [3] => 5
            [4] => 0
            [5] => 0
            [6] => 48
            [7] => 18
            [8] => 73
            [9] => 27.11.2008
            [10] => HTTP/1.1 200 OK
        )

    [5] => Array
        (
            [0] => 123
            [1] => Sportkommunikation
            [2] => http://www.sport-kommunikation.info
            [3] => 5
            [4] => 0
            [5] => 0
            [6] => 60
            [7] => 5
            [8] => 92
            [9] => 27.11.2008
            [10] => HTTP/1.1 301
        )

    [6] => Array
        (
            [0] => 120
            [1] => SEO-Linkmanager
            [2] => http://www.seo-linkmanager.com
            [3] => 0
            [4] => 0
            [5] => 0
            [6] => 3
            [7] => 1
            [8] => 75
            [9] => 28.11.2008
            [10] => HTTP/1.1 200 OK
        )

    [7] => Array
        (
            [0] => 112
            [1] => rowing-xpert
            [2] => http://www.rowing-xpert.de
            [3] => 5
            [4] => 0
            [5] => 0
            [6] => 2
            [7] => 21
            [8] => 9
            [9] => 28.11.2008
            [10] => HTTP/1.1 200 OK
Nachher
Code:
	Array
(
    [0] => Array
        (
            [0] => 118
            [1] => Tango
            [2] => http://tango.sport-scout.info
            [3] => -1
            [4] => 0
            [5] => 1
            [6] => 8
            [7] => 1
            [8] => 89
            [9] => 28.11.2008
            [10] => HTTP/1.1 200 OK
        )

    [1] => Array
        (
            [0] => 119
            [1] => Drachenboot
            [2] => http://drachenboot.sport-scout.info
            [3] => 5
            [4] => 0
            [5] => 0
            [6] => 304
            [7] => 13
            [8] => 96
            [9] => 28.11.2008
            [10] => HTTP/1.1 301
        )

    [2] => Array
        (
            [0] => 122
            [1] => Health Communication
            [2] => http://www.health-communication.info
            [3] => 5
            [4] => 0
            [5] => 0
            [6] => 0
            [7] => 2
            [8] => 0
            [9] => 27.11.2008
            [10] => HTTP/1.1 200 OK
        )

    [3] => Array
        (
            [0] => 117
            [1] => Sportwissenschaften
            [2] => http://www.sportwissenschaften.info
            [3] => 6
            [4] => 0
            [5] => 0
            [6] => 54
            [7] => 19
            [8] => 74
            [9] => 27.11.2008
            [10] => HTTP/1.1 200 OK
        )

    [4] => Array
        (
            [0] => 116
            [1] => Sport-Scout
            [2] => http://www.sport-scout.info
            [3] => 5
            [4] => 0
            [5] => 0
            [6] => 48
            [7] => 18
            [8] => 73
            [9] => 27.11.2008
            [10] => HTTP/1.1 200 OK
        )

    [5] => Array
        (
            [0] => 123
            [1] => Sportkommunikation
            [2] => http://www.sport-kommunikation.info
            [3] => 5
            [4] => 0
            [5] => 0
            [6] => 60
            [7] => 5
            [8] => 92
            [9] => 27.11.2008
            [10] => HTTP/1.1 301
        )

    [6] => Array
        (
            [0] => 120
            [1] => SEO-Linkmanager
            [2] => http://www.seo-linkmanager.com
            [3] => 0
            [4] => 0
            [5] => 0
            [6] => 3
            [7] => 1
            [8] => 75
            [9] => 28.11.2008
            [10] => HTTP/1.1 200 OK
        )

    [7] => Array
        (
            [0] => 112
            [1] => rowing-xpert
            [2] => http://www.rowing-xpert.de
            [3] => 5
            [4] => 0
            [5] => 0
            [6] => 2
            [7] => 21
            [8] => 9
            [9] => 28.11.2008
            [10] => HTTP/1.1 200 OK
        )

Geändert von sinfo (28.11.2008 um 13:57:10 Uhr)
Mit Zitat antworten
  #7  
Alt 28.11.2008, 13:54:17
Crisps Crisps ist offline
Junior Member
 
Registriert seit: Oct 2008
Alter: 47
Beiträge: 274
AW: Mehrdimensionales Array sortieren

Also bei mir scheint dieser Testcode zu funktionieren:

PHP-Code:
$websites_array[0] = array(118'Tango''http://tango.sport-scout.info');
$websites_array[1] = array(119'Drachenboot''http://drachenboot.sport-scout.info');
$websites_array[2] = array(122'Health Communication''http://www.health-communication.info');

print_r($websites_array);

foreach (
$websites_array as $key => $row) {

    
$id[$key]  = $row[0];
    
$name[$key] = $row[1];
    
$url[$key] = $row[2];
    
}

array_multisort($nameSORT_ASC$websites_array);

print_r($websites_array); 
Vielleicht hilft dir das etwas?
Mit Zitat antworten
  #8  
Alt 28.11.2008, 14:10:33
sinfo sinfo ist offline
Anfänger
 
Registriert seit: May 2003
Beiträge: 106
AW: Mehrdimensionales Array sortieren

Tja. Das Beispiel funktioniert. Ich sehe nur keinen Fehler in meinem Code. Und die Arrays >scheinen< identisch zu sein ...

Ich weiß einfach nicht, warum es bei mir im realen Code nicht funktioniert.

Ideen?
Mit Zitat antworten
  #9  
Alt 28.11.2008, 14:16:53
Crisps Crisps ist offline
Junior Member
 
Registriert seit: Oct 2008
Alter: 47
Beiträge: 274
AW: Mehrdimensionales Array sortieren

Ja, gleich in MySQL sortieren. :D

Ok, wenn du das nicht möchtest, dann musst du schon den ganzen Codeblock posten der Probleme macht.
Mit Zitat antworten
  #10  
Alt 28.11.2008, 14:18:59
sinfo sinfo ist offline
Anfänger
 
Registriert seit: May 2003
Beiträge: 106
AW: Mehrdimensionales Array sortieren

Txs. Siehe oben. Der komplette Codeblock. Es muss an meinem array liegen. Doch ich weiß nicht wieso. Habe eine Zeile hinzugefügt.

Code:
foreach ($websites_array as $key => $row) {

    $id[$key]  = $row[0];
    $name[$key] = $row[1];
    $url[$key] = $row[2];
echo "---->$row[1]--$name[$key]";    
}
Bei dem Beispiel bekomme ich
---->Tango--Tango
Bei mir
---->Tango--T


Hier gehen irgendwo infos verloren

Geändert von sinfo (28.11.2008 um 14:25:18 Uhr) Grund: details
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
Doppelte einträge aus einem Mehrdimensionalen Array aussortieren und löschen PHoenix_KM PHP für Fortgeschrittene und Experten 2 17.04.2008 19:19:53
Mehrdimensionales Array sortieren MrLongbaugh PHP Grundlagen 10 06.03.2008 13:02:47
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


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:07:34 Uhr.


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


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