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

Handbuch der Java-Programmierung

Handbuch der Java-Programmierung 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 für Fortgeschrittene und Experten

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 04.08.2005, 22:45:58
Marilu Marilu ist offline
Member
 
Registriert seit: Apr 2003
Ort: 49.54, 8.35 - 3./9
Beiträge: 878
Array konvertieren

Moin,

ich hab's mal wieder mit Arrays. Ich habe ein Array:

"1",
"1", "2",
"1", "2", "3a",
"1", "2", "3b",
"1", "3", "1",
"1", "3", "2", "3"
"2", "1", "1",
"2", "2", "1".

Was ich daraus brauche:
$newArray
['1'],
___['1']['2'],
______['1']['2']['3a'],
______['1']['2']['3b'],
______['1']['3']['1'],
______['1']['3']['2']['3'],
______['2']['1']['1'],
______['2']['2']['1']
(Die '_' sind nur optisches Einrücken)

Das ganze kann natürlich bis zu n Ebenen runtergehen. Wenn möglich, als assoziatives Array.

Hat wer einen heißen Tip für eine rekursive Routine?

Thx, Marilu

Geändert von Marilu (05.08.2005 um 06:50:58 Uhr)
Mit Zitat antworten
  #2  
Alt 05.08.2005, 15:30:42
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
AW: Array konvertieren

Ich verstehe dein System, mit dem du das Array bilden möchtest, nicht wirklich. Kannst du das nochmal genauer beschreiben?

Geändert von xabbuh (05.08.2005 um 15:30:58 Uhr)
Mit Zitat antworten
  #3  
Alt 05.08.2005, 15:42:26
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
AW: Array konvertieren

Ich könnte eine Lösungsidee haben. Hatte mal ein ähnliches Problem.

Woher weißt Du denn aber, ob ein Wert ein Wert oder ein weiteres Array mit Werten ist? Ist das von der tiefe der Ebene abhängig?

Vielleicht solltest Du Dir einfach was anderes ausdenken, macht Dir die Arbeit sicher einfacher. ;)
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
  #4  
Alt 05.08.2005, 21:17:19
Marilu Marilu ist offline
Member
 
Registriert seit: Apr 2003
Ort: 49.54, 8.35 - 3./9
Beiträge: 878
AW: Array konvertieren

Zitat:
Zitat von c4
Ich könnte eine Lösungsidee haben.
Das habe ich doch gehofft :-)))

@xabbuh, c4: Ich versuche mal, die Grundproblematik zu erläutern. Ich habe eine Tabelle, in der ich Verzeichnisstrukturen auf einem unserer Fileserver ablege. Also in der Form \\Server\Dir1\Dir2\Dir3 ....

Diese Einträge zerhacke ich über explode() (scnr :-)))) in Arrays. Ich habe jetzt natürlich für jeden Verzeichniseintrag ein Subarray; was ich jedoch möchte, ist ein mehrdimensionales geschachteltes Array - egal, ob numerisch oder assoziativ - das mir die Verzeichnisstruktur abbildet. Etwas deutlicher? Wahrscheinlich nicht :-(((

HIA, Marilu

(@c4: das heißt Hope In Advance)
Mit Zitat antworten
  #5  
Alt 06.08.2005, 08:55:54
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
AW: Array konvertieren

Ich glaube, ich verstehe, was du möchtest. Probier es doch mal so:
PHP-Code:
<?php
    
function PathToArray($path$pos$array)
    {
        if(!
array_key_exists($path[$pos], $array)) {
            
$array[$path[$pos]] = array(
                                        
$path[$pos 1] => array()
                                    );
        } else if(!
in_array($path[$pos 1], $array[$path[$ppos]])) {
            
$array[$path[$pos]][] = $path[$pos 1];
        }

        if(++
$pos count($path))
            
$array[$path[$pos]] = PathToArray($path$pos$array[$path[$pos]]);

        return 
$array;
    }

    
$path explode('/''Server/Dir1/Dir2/Dir3');
    
$array = array();

    
$array PathToArray($path0$array);
?>

Geändert von xabbuh (06.08.2005 um 21:44:33 Uhr)
Mit Zitat antworten
  #6  
Alt 06.08.2005, 09:04:50
Marilu Marilu ist offline
Member
 
Registriert seit: Apr 2003
Ort: 49.54, 8.35 - 3./9
Beiträge: 878
AW: Array konvertieren

Eigentlich habe ich oben ja Mist geschrieben. Es muss, denke ich, so aussehen:

$newArray
['1'],
___['2'],
______['3a'],
______['3b'],
___['3']
______['1'],
______['2']
_________['3'],
['2']
___['1']
______['1'],
___['2']
______['1']

@c4:
> Woher weißt Du denn aber, ob ein Wert ein Wert oder ein weiteres Array mit Werten ist? Ist das von der tiefe der Ebene abhängig?
Nur in dem jeweils letzten Element steht ein Wert drin (also hier in 3a, 3b, 1, 3, 1, 1).

Geändert von Marilu (06.08.2005 um 13:48:11 Uhr)
Mit Zitat antworten
  #7  
Alt 06.08.2005, 09:57:43
Marilu Marilu ist offline
Member
 
Registriert seit: Apr 2003
Ort: 49.54, 8.35 - 3./9
Beiträge: 878
AW: Array konvertieren

@xabbuh
Der Ansatz sieht gut aus, aber es hängt noch. Ich habe Deine Funktion so implementiert:

PHP-Code:
$aPath = array();

while (
$row mysql_fetch_array($result)) {
    
$aPath0 explode("\\"$row['Path']);
    
array_push($aPath$aPath0);
}

foreach ( 
$aPath as $path) {
    
$array = array(); 

    
PathToArray($path0$array); // kein Rückgabewert?

    
array_push($aPath$array);

    
print_a($array); // Gibt das Array strukturiert aus; man kann auch print_r() nehmen

Die Arrays sind leer, und es kommen etliche Notice / Warning...

Du siehst sicherlich sofort, wo mein Denkfehler ist...
Mit Zitat antworten
  #8  
Alt 06.08.2005, 13:26:52
Marilu Marilu ist offline
Member
 
Registriert seit: Apr 2003
Ort: 49.54, 8.35 - 3./9
Beiträge: 878
AW: Array konvertieren

PHP-Code:
} else if(!in_array($path[$pos 1], $array[$path[$ppos]])) { 
Ein p zuviel, hängt aber immer noch.
Mit Zitat antworten
  #9  
Alt 06.08.2005, 21:45:28
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
AW: Array konvertieren

Ich habe meine Funktion noch einmal in Richtung Verarbeitung des Rückgabewertes überarbeitet.
Mit Zitat antworten
  #10  
Alt 07.08.2005, 08:41:51
Marilu Marilu ist offline
Member
 
Registriert seit: Apr 2003
Ort: 49.54, 8.35 - 3./9
Beiträge: 878
AW: Array konvertieren

Irgendwo klemmts noch. Hier ein paar Meldungen und das erstellte Array:

PHP-Code:
NoticeUndefined indexDir1 in listtree.php on line 109

Warning
array_key_exists(): The second argument should be either an array or an object in listtree.php on line 100

Notice
Undefined indexDir2 in listtree.php on line 109

Warning
array_key_exists(): The second argument should be either an array or an object in listtree.php on line 100

Notice
Undefined indexDir3 in listtree.php on line 109

Warning
array_key_exists(): The second argument should be either an array or an object in listtree.php on line 100

Notice
Undefined offset4 in listtree.php on line 102

Array
(
    [
Server] => Array
        (
            [
Dir1] => Array
                (
                )
        )
    [
Dir1] => Array
        (
            [
Dir1] => Array
                (
                    [
Dir2] => Array
                        (
                        )
                )
            [
Dir2] => Array
                (
                    [
Dir2] => Array
                        (
                            [
Dir3] => Array
                                (
                                )
                        )
                    [
Dir3] => Array
                        (
                            [
Dir3] => Array
                                (
                                    [] => Array
                                        (
                                        )
                                )
                        )
                )
        )

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
zweidimensionales Array aus MySQL Jürg PHP für Fortgeschrittene und Experten 3 20.05.2005 15:42:48
array verliert den wert Stifler PHP Grundlagen 13 11.04.2005 20:23:35
Einzelne Daten aus Textdatei Auslesen azubinator PHP Grundlagen 153 17.12.2004 13:36:58
Wie sortiere ich ein mehrdimensionales Array sinfo PHP für Fortgeschrittene und Experten 1 09.07.2003 11:28:38
String in Array umwandeln.... DeMaephis PHP für Fortgeschrittene und Experten 7 19.05.2002 19:34:28


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:06:32 Uhr.


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


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