Multidimensionales Array auslesen

akkie

Erfahrenes Mitglied
Hi

Hab da mal ne Frage.

Ich möchte gern eine Function schreiben die mir Multidimensionales Array von Variabler größe ausliest.

Diese Array $db[][][];

Würde ich so auslesen

PHP:
while(list($eintrag_1,$new_eintrag_array) = each($db))
{
      while(list($eintrag_2,$eintrag_3) = each($new_eintrag_array)
      {
            
      } 
}

Ich möchte dies aber Variable halten. Das heißt wenn ich aus der Datenbank ein array aus 5 Spalten erstelle.

Dann habe ich dieses Array

$db[][][][][];

Wie lese ich das anm besten aus. Wie gesagt in eine Funktion.

Mfg Akkie
 
Eine datenbank mit 5 Spalten kann mir ein 5 dimensiomales Array erstellen. Eine mit 10 Spalten kann mir ein 10 Dimensionales array erstellen. Weiß nicht ob mann sagt 10 Dimensional. Normal heißt es ja nur Multidimensional.

Tabelle
id name telefon anschrift

Array
array[id][name][telefon][anschrift];

Ich möchte wie gesagt ein Mehrdimensionales Array an eine Funktion geben. Diese soll mir dann das Array auslesen. Das Problem ist aber es kann einmal ein 5 Dimensionale mal ein 3 dimensionales sein.

Mfg Akkie
 
Zuletzt bearbeitet:
es ist egal wieviele spalten sie hat, es können max. nur 2 sein weeeeeil:

MySQL Beispiel:
Code:
id|subject|message
1 |yoyo   |test
2 |zweiter|test
da kommt raus ( wenn du es richtig machst :-) ):
$array[0][id]
$array[0][subject]
$array[0][message]

$array[1][id]
$array[1][subject]
$array[1][message]

da du nur die zeilen in arrays lesen musst und nix anderes
 
Hi

So wie du es machst kann ich die Arrays dann aber nur über die Indexe ansprechen. Denke ich mir jetzt mal. Das ist mein Problem. Ich erklähr dir mal wie ich es mir gedacht habe.

Also ich habe diese Funktion



PHP:
function make_array_from_db($query,$id,$name)

{

       $result = safe_query($query);

       while($row = mysql_fetch_array($result))

       {

             $array[$row[$id]] = $row[$name];

       }

       if(isset($array)) return $array;

       else $str = "";

       return $str;

}

Aufrufen tu ich sie so
$drop_array = make_array_from_db("SELECT * FROM cms_site_kat WHERE kat_id >= 2 ORDER BY kat_id", "kat_id", "titel");

Diese gebe ich an eine Funktion die mir ein Dropdown-Feld erstellt. Das funktioniert ast rein. Weil ich ja nur 2 Datenbankeinträge in dem Array speichere id und name.

Dies funktioniert aber auch nur solange ich ein normales Dropdownfeld erstelle. Möchte ich es jetzt vorselektieren fehlt mir ein Eintrag aus der Datenbank. Der mir sagt welches Feld den Status on hat.

Genau das gleiche tritt auf wenn ich mir eine Funktion zum erstellen von checkbox Feldern bauen will. Weil ich da auch 3 einträge aus der Datenbank brauche.

Hier noch mal die funktion zum erstellen des Dropdownfeldes.


PHP:
function make_dropdown_field($input,$field_var,$field_name)

{

             $tpl = new HTML_Template_IT('templates/');

             $tpl->loadTemplateFile('dropdown_field.html');

             $tpl->setVariable('FIELD_NAME', $field_name);

             $tpl->setVariable('NAME', $field_var);



             $tpl->setCurrentBlock('option');

             foreach($input as $value => $name)

             {

                     if(isset($_POST[$field_var]) && $_POST[$field_var] == $value)

                     {

                        $tpl->setVariable('SELECTED', 'selected');

                        $tpl->setVariable('VALUE', $value);

                        $tpl->setVariable('DROP_NAME', $name);

                     }

                     else

                     {

                        $tpl->setVariable('SELECTED', '');

                        $tpl->setVariable('VALUE', $value);

                        $tpl->setVariable('DROP_NAME', $name);

                     }

                     $tpl->parseCurrentBlock();

             }

             echo $tpl->show();



}

Das Problem habe ich dann beim auslesen des Array`s. Weil ich es wie gesagt nicht über die Indexe ansprechen kann da diese der Funktion nicht bekannt sind.

Mfg Akkie
 
Zurück