Zu den Aufzeichnungen der tutorials.de-Live-Workshops
Like Tree1Danke
  • 1 Beitrag von einfach nur crack
ERLEDIGT
JA
ANTWORTEN
4
ZUGRIFFE
198
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    doribell doribell ist offline Mitglied Bronze
    Registriert seit
    Jul 2004
    Beiträge
    30
    Hallo,

    ich versuche seit Stunden einen Algorythmus zu entwerfen der mir das von imap_list() zurückgegebene Array in ein für mich brauchbares wandeln kann.

    imap_list return:
    PHP-Code:
    array(15) {
      [
    0]=>
      
    string(33"{imap.example.de:143}INBOX.1und1"
      
    [1]=>
      
    string(38"{imap.example.de:143}INBOX.1und1.test"
      
    [2]=>
      
    string(43"{imap.example.de:143}INBOX.1und1.test.test"
      
    [3]=>
      
    string(31"{imap.example.de:143}INBOX.AVM"
      
    [4]=>
      
    string(39"{imap.example.de:143}INBOX.Bewerbungen"
      
    [5]=>
      
    string(34"{imap.example.de:143}INBOX.Drafts"
      
    [6]=>
      
    string(35"{imap.example.de:143}INBOX.Maxdome"
      
    [7]=>
      
    string(40"{imap.example.de:143}INBOX.Neue Impulse"
      
    [8]=>
      
    string(35"{imap.example.de:143}INBOX.Paysave"
      
    [9]=>
      
    string(32"{imap.example.de:143}INBOX.Sent"
      
    [10]=>
      
    string(38"{imap.example.de:143}INBOX.Server4you"
      
    [11]=>
      
    string(47"{imap.example.de:143}INBOX.StartCom CertMaster"
      
    [12]=>
      
    string(33"{imap.example.de:143}INBOX.Trash"

    Es handelt sich bei den Strings um eine Ordnerstruktur des Imap-Postfachs. Im Ordner 1und1 habe ich zum testen Unterordner erstellt.

    Ein für mich brauchbares Array wäre nun folgendes: In der ersten Ebene alle Ordner die in der INBOX sind. Diese Ordner enthalten jeweils Arrrays mit den Unterordnern usw.

    Mir glüht echt der Kopf ich habe bis jetzt jeden Ansatz wieder verworfen, ich bin offen für jeden Tip der zu Erfolg führt.
     

  2. #2
    Avatar von ComFreek
    ComFreek ComFreek ist offline [x] Let it be logic!
    tutorials.de Moderator
    Registriert seit
    Jun 2009
    Beiträge
    2.203
    Blog-Einträge
    3
    Hallo,

    sind bei dir die Ordner z.B. "Maxdome, Sent, Server4you, StartCom CertMaster..."?
     
    mfg ComFreek

    Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
    Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
    [PHP] Überprüfen, ob Website erreichbarSicherheit in PHP-Codes schaffenGoogle Chrome-Extension für tutorials.dejson_compress()

  3. #3
    doribell doribell ist offline Mitglied Bronze
    Registriert seit
    Jul 2004
    Beiträge
    30
    Genau, bei 1und1 sieht man dann auch wie die Unterordner dargestellt werden. Dort wäre die Struktur 1und1 -> test -> test.
     

  4. #4
    Avatar von einfach nur crack
    einfach nur crack einfach nur crack ist gerade online mag Cookies & Kekse
    tutorials.de Premium-User
    Registriert seit
    May 2007
    Ort
    Dresden (Sachsen)
    Beiträge
    1.458
    Des Rätsels Lösung ist Rekursion. Ich hätte dir gerne dazu einen kleinen Codeschnipsel präsentiert, aber auch nach einer Stunde tüffteln bin ich zu keiner konkreten Lösung gekommen.

    Damit bekommst du zumindest die Daten in ein Format, mit dem man auch arbeiten kann:
    Code PHP:
    1
    2
    3
    4
    5
    6
    
    foreach($list as $i => $point) {
      list(, $point) = explode('}', $point, 2);
      $list[$i] = explode('.', $point);
      unset($list[$i][0]);
      $list[$i] = array_values($list[$i]);
    }
    doribell bedankt sich. 
    Ich mag:
    • positive Bewertungen meiner Beiträge
    • ein Danke für meine hilfreichen Beiträge

    Dabei kann ich dir helfen: PHP --- Javascript --- Ruby --- Coffeescript --- CSS --- HTML --- Webtechnologien --- Shell --- UNIX

    ... noch was: falls du mit dem Thema hier fertig bist, dann kannst du es auch als erledigt markieren.

  5. #5
    doribell doribell ist offline Mitglied Bronze
    Registriert seit
    Jul 2004
    Beiträge
    30
    Danke für den Tipp mit der Rekursion, das versuchte ich gestern umständlich mit eigenen functions zu lösen.

    Ich habe mir ebend nochmal alle Manuals zum Thema Arrays angeschaut und array_merge_recursive gefunden().

    Lösung:

    PHP-Code:

    $array 
    = @imap_list($this -> socket$server$pattern) or $this -> error();

    $boxes = array();

    foreach(
    $array as $str) {
        
        
    $temp = array();
                        
        
    $explode explode('.'str_replace($servernull$str));
                        
        if (
    count($explode) > 0) {
                            
            for(
    $i count($explode)-1$i >= 0$i--) {
                                
                if (
    count($temp) == 0) {
                                    
                    
    $temp[$explode[$i]] = array();
                } else {
                                    
                    
    $temp = array($explode[$i] => $temp);
                }
            }
                            
            
    $boxes array_merge_recursive($boxes$temp);
        }

    Die Lösung ist mit Sicherheit noch nicht endgültig, allerdings kann ich damit erstmal leben und an anderen Stellen weiter arbeiten. Die Array sieht nun so aus wie ich sie mir vorgestellt habe.
    Geändert von doribell (05.09.10 um 02:44 Uhr)
     

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 25.12.08, 07:07
  2. Antworten: 5
    Letzter Beitrag: 30.04.07, 15:03
  3. mehrdimensionales array
    Von jenno im Forum PHP
    Antworten: 2
    Letzter Beitrag: 08.06.04, 14:23
  4. [c++] Mehrdimensionales Array
    Von WhiteNazgul im Forum C/C++
    Antworten: 5
    Letzter Beitrag: 18.11.03, 20:55
  5. Mehrdimensionales Array
    Von Texaner im Forum Javascript & Ajax
    Antworten: 8
    Letzter Beitrag: 17.11.03, 19:56