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
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden |
28.11.2008, 10:47:28
|
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!
|
28.11.2008, 11:18:29
|
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.
|
28.11.2008, 11:23:19
|
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
|
28.11.2008, 12:22:33
|
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($name, SORT_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)
|
28.11.2008, 13:33:46
|
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)
|
28.11.2008, 13:54:17
|
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($name, SORT_ASC, $websites_array);
print_r($websites_array);
Vielleicht hilft dir das etwas?
|
28.11.2008, 14:10:33
|
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?
|
28.11.2008, 14:16:53
|
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.
|
28.11.2008, 14:18:59
|
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
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Ansicht |
Linear-Darstellung
|
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.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 14:07:34 Uhr.
|