Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Mehrdimensionale Arrays ... ich krieg die Krise :-)

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Mehrdimensionale Arrays ... ich krieg die Krise :-)

    Hallo Leute,
    bin neu hier und habe schon ne Frage

    Irgendwie komme ich mit dem neuen Drupal 7 "Submit" nicht richtig klar. Die "neue" Funktion "tableselect" bei Drupal 7 ist zwar klasse und erleichtert Tabellen-Selektierung aber gibt mir nach dem "submit" auch eine RIESEN-ARRAY raus mit allen Möglichen Daten, die ich eigentlich nicht brauche.

    So sieht die Array aus:
    Code:
    Array
    (
        [pager_table] => Array
            (
                [#type] => tableselect
                [#header] => Array
                    (
                        [0] => Array
                            (
                                [data] => ID
                                [field] => d.id
                            )
    
                        [1] => Array
                            (
                                [data] => THUMB
                            )
    
                        [2] => Array
                            (
                                [data] => Original File Name
                                [field] => d.harvest_file
                            )
    
                    )
    
                [#options] => Array
                    (
                        [0] => Array
                            (
                                [0] => Array
                                    (
                                        [data] => 14 <<<<<<<<<<<<<<<----   AUSLESEN!
                                    )
    
                                [1] => Array
                                    (
                                        [data] => THUMB
    
                                    )
    
                                [2] => Array
                                    (
                                        [data] => 000012.flv
    
                                    )
    
                            )
    
                    )
    
                [#empty] => There are no date formats found in the db
                [#input] => 1
                [#js_select] => 1
                [#multiple] => 1
                [#process] => Array
                    (
                        [0] => form_process_tableselect
                    )
    
                [#theme] => tableselect
                [#defaults_loaded] => 1
                [#tree] => 1
                [#parents] => Array
                    (
                        [0] => pager_table
                    )
    
                [#array_parents] => Array
                    (
                        [0] => pager_table
                    )
    
                [#weight] => 0
                [#processed] => 1
                [#required] => 
                [#attributes] => Array
                    (
                    )
    
                [#title_display] => before
                [#id] => edit-pager-table
                [#name] => pager_table
                [#value] => Array
                    (
                        [1] => 1
                    )
    
                [#needs_validation] => 1
                [#default_value] => Array
                    (
                    )
    
                [0] => Array
                    (
                        [#type] => checkbox
                        [#title] => 
                        [#title_display] => invisible
                        [#return_value] => 0
                        [#default_value] => 
                        [#attributes] => Array
                            (
                            )
    
                        [#input] => 1
                        [#theme] => checkbox
                        [#process] => Array
                            (
                                [0] => form_process_checkbox
                                [1] => ajax_process_form
                            )
    
                        [#theme_wrappers] => Array
                            (
                                [0] => form_element
                            )
    
                        [#defaults_loaded] => 1
                        [#tree] => 1
                        [#parents] => Array
                            (
                                [0] => pager_table
                                [1] => 0
                            )
    
                        [#array_parents] => Array
                            (
                                [0] => pager_table
                                [1] => 0
                            )
    
                        [#weight] => 0
                        [#processed] => 1
                        [#required] => 
                        [#id] => edit-pager-table-0
                        [#name] => pager_table[0]
                        [#value] => 0
                        [#needs_validation] => 1
                        [#checked] => 
                        [#ajax_processed] => 
                        [#sorted] => 1
                        [#validated] => 1
                    )
    
                [1] => Array
                    (
                        [#type] => checkbox
                        [#title] => 
                        [#title_display] => invisible
                        [#return_value] => 1
                        [#default_value] => 1
                        [#attributes] => Array
                            (
                            )
    
                        [#input] => 1
                        [#theme] => checkbox
                        [#process] => Array
                            (
                                [0] => form_process_checkbox
                                [1] => ajax_process_form
                            )
    
                        [#theme_wrappers] => Array
                            (
                                [0] => form_element
                            )
    
                        [#defaults_loaded] => 1
                        [#tree] => 1
                        [#parents] => Array
                            (
                                [0] => pager_table
                                [1] => 1
                            )
    
                        [#array_parents] => Array
                            (
                                [0] => pager_table
                                [1] => 1
                            )
    
                        [#weight] => 0.001
                        [#processed] => 1
                        [#required] => 
                        [#id] => edit-pager-table-1
                        [#name] => pager_table[1]
                        [#value] => 1
                        [#needs_validation] => 1
                        [#checked] => 1
                        [#ajax_processed] => 
                        [#sorted] => 1
                        [#validated] => 1
                    )
    
                [#sorted] => 1
                [#validated] => 1
            )
    
    
        [pager_pager] => Array
            (
                [#theme] => pager
                [#tree] => 
                [#parents] => Array
                    (
                        [0] => pager_pager
                    )
    
                [#array_parents] => Array
                    (
                        [0] => pager_pager
                    )
    
                [#weight] => 0.002
                [#processed] => 
                [#required] => 
                [#attributes] => Array
                    (
                    )
    
                [#title_display] => before
                [#id] => edit-pager-pager
                [#sorted] => 1
                [#validated] => 1
            )
    
        [submit] => Array
            (
                [#type] => submit
                [#value] => Submit
                [#submit] => Array
                    (
                        [0] => test_submit
                    )
    
                [#input] => 1
                [#name] => op
                [#button_type] => submit
                [#executes_submit_callback] => 1
                [#limit_validation_errors] => 
                [#process] => Array
                    (
                        [0] => ajax_process_form
                    )
    
                [#theme_wrappers] => Array
                    (
                        [0] => button
                    )
    
                [#defaults_loaded] => 1
                [#tree] => 
                [#parents] => Array
                    (
                        [0] => submit
                    )
    
                [#array_parents] => Array
                    (
                        [0] => submit
                    )
    
                [#weight] => 0.003
                [#processed] => 1
                [#required] => 
                [#attributes] => Array
                    (
                    )
    
                [#title_display] => before
                [#id] => edit-submit
                [#ajax_processed] => 
                [#sorted] => 1
                [#validated] => 1
            )
    
        [#form_id] => user_files_page
        [#type] => form
        [#build_id] => form-fClXmAaP1qDlkuR8ooa86Y83483pctVviJU0lNe8lWI
        [form_build_id] => Array
            (
                [#type] => hidden
                [#value] => form-fClXmAaP1qDlkuR8ooa86Y83483pctVviJU0lNe8lWI
                [#id] => form-fClXmAaP1qDlkuR8ooa86Y83483pctVviJU0lNe8lWI
                [#name] => form_build_id
                [#parents] => Array
                    (
                        [0] => form_build_id
                    )
    
                [#input] => 1
                [#process] => Array
                    (
                        [0] => ajax_process_form
                    )
    
                [#theme] => hidden
                [#defaults_loaded] => 1
                [#tree] => 
                [#array_parents] => Array
                    (
                        [0] => form_build_id
                    )
    
                [#weight] => 0.004
                [#processed] => 1
                [#required] => 
                [#attributes] => Array
                    (
                    )
    
                [#title_display] => before
                [#ajax_processed] => 
                [#sorted] => 1
                [#validated] => 1
            )
    
        [#token] => user_files_page
        [form_token] => Array
            (
                [#id] => edit-user-files-page-form-token
                [#type] => token
                [#default_value] => bQWK_R58nPIbz2d38150GUIwzhDrjV8yE6thRqTntHQ
                [#parents] => Array
                    (
                        [0] => form_token
                    )
    
                [#input] => 1
                [#theme] => hidden
                [#defaults_loaded] => 1
                [#tree] => 
                [#array_parents] => Array
                    (
                        [0] => form_token
                    )
    
                [#weight] => 0.005
                [#processed] => 
                [#required] => 
                [#attributes] => Array
                    (
                    )
    
                [#title_display] => before
                [#name] => form_token
                [#value] => bQWK_R58nPIbz2d38150GUIwzhDrjV8yE6thRqTntHQ
                [#needs_validation] => 1
                [#sorted] => 1
                [#validated] => 1
            )
    
        [form_id] => Array
            (
                [#type] => hidden
                [#value] => user_files_page
                [#id] => edit-user-files-page
                [#parents] => Array
                    (
                        [0] => form_id
                    )
    
                [#input] => 1
                [#process] => Array
                    (
                        [0] => ajax_process_form
                    )
    
                [#theme] => hidden
                [#defaults_loaded] => 1
                [#tree] => 
                [#array_parents] => Array
                    (
                        [0] => form_id
                    )
    
                [#weight] => 0.006
                [#processed] => 1
                [#required] => 
                [#attributes] => Array
                    (
                    )
    
                [#title_display] => before
                [#name] => form_id
                [#ajax_processed] => 
                [#sorted] => 1
                [#validated] => 1
            )
    
        [#id] => user-files-page
        [#method] => post
        [#action] => /?q=customer
        [#theme_wrappers] => Array
            (
                [0] => form
            )
    
        [#tree] => 
        [#parents] => Array
            (
            )
    
        [#validate] => Array
            (
            )
    
        [#submit] => Array
            (
            )
    
        [#theme] => Array
            (
                [0] => user_files_page
            )
    
        [#processed] => 
        [#defaults_loaded] => 1
        [#required] => 
        [#attributes] => Array
            (
            )
    
        [#title_display] => before
        [#array_parents] => Array
            (
            )
    
        [#sorted] => 1
        [#validated] => 1
    )

    mächtig viel Daten und Arrays Und ich brauche eigentlich "nur" bei "#options" Inhalt von [0][0] (im Beispiel die "14") und dazu gehörende "submit-postion"

    Ich habe schon mit foreach vesucht und krieg eigentlich was raus, aber da kommt sehr viel "* warning: Invalid argument supplied for foreach()".
    Ist auch klar, das nicht alle Teile eine Array sind.

    Hier mein "Test-Versuch":
    PHP-Code:
    foreach ($build as $pager_tables => $value){

    foreach (
    $value as $options){

    foreach (
    $options as $options2 => $value3){

    foreach (
    $value3 as $options3 => $value4){

    foreach (
    $value4 as $options4 => $value5){

    if(
    $options3 == 0){

                             
    $wert2 $options2;
                             
    $wert $value5;   
      
                             
    drupal_set_message(t('Array-Ausgabe: '$wert2$wert));
                             }
             }
           }
         }
        } 


    Dabei kommt eigentlich schon das was ich brauche, aber es ist nicht ok. Und die Fehler-Meldungen nerven auch noch dazu.

    Bis jetzt komme ich nicht so richtig auf eine Idee, wie man die Werte richtig direkt anspricht. Viel zu viele Dimensionen für mich in einer Array.

    Kann da mir jemand einen Tip geben?

    Danke!

  • #2
    Vor jeder Foreach-Schleife einmal abfragen ob du an der Stelle ein Array hast würde schonmal helfen. Ansonsten stellt Drupal da möglicherweise noch möglichkeiten zur Verfügung darauf besser zuzugreifen. Das ist allerdings eher ne Frage fürs Drupal Supportforum.
    Zitat von derwunner
    "Ein FISI ist auf gut-deutsch der Netzwerker. Das heißt Du gehst rauß zum Kunden oder auf die Straße und verlegst Leitungen" - derwunner 2015

    Kommentar


    • #3
      Ich bin mir nicht sicher, ob das deine Frage ist, dein mehrdimensionales Array solltest du so ansprechen können:

      Code:
      $build ['pager_table']['#options'][0][0]['data']
      Quelle:
      http://php.net/manual/en/language.ty...hp#example-101

      Allerdings lade ich dich ein, einmal selbst zu googeln, nach dem Wort, das den Inhalt des Arrays beschreibt, welchen du haben möchtest.
      Denn ich kann mir gut vorstellen, dass das leichter geht bei Drupal.
      Zumindest bei Wordpress findet man sehr oft leichtere Methoden, anstatt auf Rohdaten in großen Arrays manuell zuzugreifen.

      Kommentar


      • #4
        Hallo dreamcatcher,
        Mensch, wieso habe ich den einfachsten Weg nicht gesehen! Dein Code funktioniert! Ich habe tatsächlich den Wert sofort erhalten.

        Vielen Dank für sehr schnelle Hilfe. Ich habe seit drei Tagen nur "gegoogelt" und nach Lösungen für "tableselect-array" bei Drupal 7 gesucht. Jede Menge Lösungen für zwei und dreidimensionale Arrays gefunden. Aber leider nix passendes gefunden. Ich habe auch mal sowas ähnliches wie dein Code ausprobiert, leider habe ich aber zu kompliziert gedacht und entweder zu wenig oder zu viel [] eingesetzt Na ja, es geht auch einfacher Danke nochmal!

        Kommentar


        • #5
          Zitat von Sergik Beitrag anzeigen
          Vielen Dank für sehr schnelle Hilfe. Ich habe seit drei Tagen nur "gegoogelt" und ... leider habe ich aber zu kompliziert gedacht ... Na ja, es geht auch einfacher Danke nochmal!
          Das kennen wohl einige unter uns
          Gern geschehen!

          Kommentar

          Lädt...
          X