Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 2005 Teil von November

SELFHTML Forumsarchiv
mehrdimensionales array ausgeben

Informationsseite
  1. Seite (PHP) mehrdimensionales array ausgeben von theresa, 30. 11. 2005, 13:32
nach unten

mehrdimensionales array ausgeben

Die folgende Nachricht zum Thema stammt von: theresa, 30. 11. 2005, 13:32

hi leute!

ich nähere mich einem großen persönlichen erfolg.

kann mir jemand erklären wie ich ein mehrdimensionales arrays, dass ich hoffentlich richtig erstellt habe, ausgeben kann.

erstellung:
$akttermin = 1,2,3.....
$arra = 1,2,3.....
$array = array("$akttermin" => array("$arra" => "0"));

ausgabe:
echo $array[1][1];

natürlich erschient auf mienem bilschirm genau nichts...

mach ich was falsch?

danke,
eure theresa

nach obennach unten

mehrdimensionales array ausgeben

Die folgende Nachricht zum Thema stammt von: Marc Reichelt, 30. 11. 2005, 13:34

Hallo theresa,

»» kann mir jemand erklären wie ich ein mehrdimensionales arrays, dass ich hoffentlich richtig erstellt habe, ausgeben kann.
»»
»» erstellung:
»» $akttermin = 1,2,3.....
»» $arra = 1,2,3.....
»» $array = array("$akttermin" => array("$arra" => "0"));
»»
»» ausgabe:
»» echo $array[1][1];
»»
»» natürlich erschient auf mienem bilschirm genau nichts...

[x] Du suchst die Funktion print_r().


Grüße

Marc Reichelt || http://www.marcreichelt.de/

--
Linux is like a wigwam - no windows, no gates and an Apache inside!

Selfcode: ie:{ fl:| br:> va:} ls:< fo:} rl:( n4:( ss:) de:> js:| ch:? sh:| mo:) zu:)
http://emmanuel.dammerer.at/selfcode.html

nach obennach unten

mehrdimensionales array ausgeben

Die folgende Nachricht zum Thema stammt von: theresa, 30. 11. 2005, 13:58

hi leute!

mit print_r() kommt folgende ausgabe:
Array ( [2] => Array ( [28] => 0 ) )

was heisst das?

theresa

nach obennach unten

mehrdimensionales array ausgeben

Die folgende Nachricht zum Thema stammt von: wahsaga, 30. 11. 2005, 14:03

hi,

»» mit print_r() kommt folgende ausgabe:
»» Array ( [2] => Array ( [28] => 0 ) )
»»
»» was heisst das?

Das ist die Struktu deines Arrays - die du jetzt eigentlich verstehen können solltest.

Tipp: Schau in den Quelltext, oder setze ein <pre> darum - dann ist auch nicht alles in einer Zeile, sondern auch noch eingerückt.

gruß,
wahsaga


--
/voodoo.css:
#GeorgeWBush { position:absolute; bottom:-6ft; }

nach obennach unten

mehrdimensionales array ausgeben

Die folgende Nachricht zum Thema stammt von: theresa, 30. 11. 2005, 14:12

hi wahsaga!

die ausgabe versteh ich schon, aber ich verstehe nicht warum
ich nur eine zeile bekomme.

ich suche einen weg, in einer schleife die einzelnen werte der jeweiligen arrays auszugeben.

im sinne von:
echo $array[1][1];
echo $array[1][2];
echo $array[1][3];
.
.
.
echo $array[1][28];

echo $array[2][1];
echo $array[2][2];
echo $array[2][3];
.
.
.
echo $array[2][28];


danke für einen rat,
theresa

nach obennach unten

mehrdimensionales array ausgeben

Die folgende Nachricht zum Thema stammt von: Juan, 30. 11. 2005, 14:13

Moin,

»» die ausgabe versteh ich schon, aber ich verstehe nicht warum
»» ich nur eine zeile bekomme.
»»
»» ich suche einen weg, in einer schleife die einzelnen werte der jeweiligen arrays auszugeben.

schreib dir doch eine rekursive Funktion, die dir die Inhalte eines Arrays ausgibt und sich selbst aufruft, wenn der Inhalt ein array ist.

MfG,
  Juan

nach obennach unten

mehrdimensionales array ausgeben

Die folgende Nachricht zum Thema stammt von: Juan, 30. 11. 2005, 14:18

Moin nochmal,

»» schreib dir doch eine rekursive Funktion, die dir die Inhalte eines Arrays ausgibt und sich selbst aufruft, wenn der Inhalt ein array ist.
»»

also im Prinzip sowas hier:
function printArray($var){
 for ($i=0;$i<sizeof($var);$i++){
  if (!is_array($var[$i])){
    echo $var[$i]."<br>";
  }
  else{
  printArray($var[$i]);
  }
 }
}

MfG,
 Juan

nach obennach unten

mehrdimensionales array ausgeben

Die folgende Nachricht zum Thema stammt von: theresa, 30. 11. 2005, 14:29

hallo leute, hallo juan!

ich danke für eure rege teilnahme, jedoch kann ich genau mit keinem von euren posts was anfangen.

ich bin anfänger, bitte vergesst das nicht.
ich weiß ja nichtmal was eine rekursive funktion ist...

für euch ist es doch wohl ein leichtes die werte meines arrays auszugeben, oder?
bitte helft mir doch mit einem code-beispiel, das kann ich lesen, verstehen und daraus lernen.

danke juan für dein beispiel, leider gibt das bei mir genau
nichts aus, weil die funktion printarray unbekannt ist...

kann mir vielleicht jemand erklären, warum folgender code ebenfalls
nichts ausgibt:

for($x2=1; $x2<=2; $x2++)
{
 for($x=1; $x<=28; $x++)
 {
  print"$x:$x2-$x" . $array[$x2][$x] . "<br>";
 }
}

danke!!!!!!!

nach obennach unten

mehrdimensionales array ausgeben

Die folgende Nachricht zum Thema stammt von: Juan, 30. 11. 2005, 14:34

Moin,

»» danke juan für dein beispiel, leider gibt das bei mir genau
»» nichts aus, weil die funktion printarray unbekannt ist...

kopiere dir die Funktion printArray doch einfach von meinem Post und dann ist sie nicht mehr unbekannt :-)

Grüsse,
  Juan

nach obennach unten

mehrdimensionales array ausgeben

Die folgende Nachricht zum Thema stammt von: theresa, 30. 11. 2005, 14:45

hi juan!

hmm, verstehe....
wie kann ich dann die funktion aufrufen?

danke,
theresa

nach obennach unten

mehrdimensionales array ausgeben

Die folgende Nachricht zum Thema stammt von: Juan, 30. 11. 2005, 14:50

Hallo,

»» hmm, verstehe....
»» wie kann ich dann die funktion aufrufen?

<?PHP
$array1 = array('a','b','c');
$array2 = array('d','e','f');
$array3 = array('1','2','3');
$array4 = array($array1,$array2,$array3);

function printArray($var){
 foreach($var as $k){
   if (!is_array($k)){
      echo $k."<br>";
    }
    else{
    printArray($k);
  }
 }
}
printArray($array4);
?>

Das würde zu folgender Ausgabe führen:
a
b
c
d
e
f
1
2
3

Grüsse,
  Juan

nach obennach unten

mehrdimensionales array ausgeben

Die folgende Nachricht zum Thema stammt von: Chris, 30. 11. 2005, 14:41

Hallo Theresa,


benutze für PHP-Arrays nicht for(), sondern foreach()

PHP-Arrays sind keine Arrays im klassischen Sinne, sondern es sind verkettete Strukturen. Mehrdimensionale sind Baumstrukturen.

Das führt dazu, dass keine Polymorphie vorliegen muss, die bei einem klassischen Array aber die Grundlage darstellt. Es können also Indexe fehlen oder z.B. nicht in der erwarteten Reihenfolge vorliegen.

Foreach() läuft die Kette in der Verkettungsreihenfolge ab.

LG
Chris

nach obennach unten

mehrdimensionales array ausgeben

Die folgende Nachricht zum Thema stammt von: Joachim, 30. 11. 2005, 14:47

Hi,

»» ich bin anfänger, bitte vergesst das nicht.
»» ich weiß ja nichtmal was eine rekursive funktion ist...
nun denne, testen:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
<html>
<head>
</head>
<body>

<?php

$myArr = array(
    "blah"  =>  array(
                0       => "lala",
                "xyz"   => "bebe",
                "urgs"  => array("hep", "hip")
    ),
    "haha"  =>  array(
                0       => "la",
                1       => "li",
                2       => "lu"
    )
);

echo "Ausgabe print_r:<br><br><pre>";
print_r($myArr);
echo "</pre><br><br>";

// array ausgeben
function readOutArr($arr) {

    // arraytiefe
    static $i  =  0;
    foreach($arr as $key => $val) {

        if(is_array($val)) {
            echo (str_repeat("&nbsp;&nbsp;&nbsp;", $i)) . $key . "  enth&auml;lt:<br>";
            $i ++;
            readOutArr($val);
            $i --;
        } else {
            echo (str_repeat("&nbsp;&nbsp;&nbsp;", $i)) . $key . " = " . $val . "<br>";
        }
    }
}

readOutArr($myArr);

?>

</body>
</html>

Gruesse, Joachim
--
Am Ende wird alles gut.

nach obennach unten

mehrdimensionales array ausgeben

Die folgende Nachricht zum Thema stammt von: theresa, 30. 11. 2005, 14:55

hi joachim!

danke, danke, danke!
ich versteh schon langsam, worum es geht...

aber mir ist nicht klar, was ich dann beim bauen meines arrays falsch mache (while läuft zweimal durch):


 $akttermin = 1;
 while ($row = mysql_fetch_array($result))
 {
  $kid = $row["kid"];
  $bh = $row["bh"];
  $eh = $row["eh"];
  $bm = $row["bm"];
  $em = $row["em"];
  $t_array = array("$akttermin" => array("1" => "$kid"));
  $akth = 8;
  $arra = 1;
  for($g=1; $g<=14; $g++)
  {
   if ($akth <= $eh && $akth >= $bh)
   {
    if ($akth == $eh && $em == "1")
    {
     print "g: $g | akth: $akth | arra: $arra | halbe-YES | weil: $akth <= $eh && $akth >= $bh | array: array-$akttermin-$arra<br>";
     $array = array("$akttermin" => array("$arra" => "1"));
     $arra = $arra+1;
     print "g: $g | akth: $akth | arra: $arra | volle-NO | weil: $akth <= $eh && $akth >= $bh | array: array-$akttermin-$arra<br>";
     $array = array("$akttermin" => array("$arra" => "0"));
     $arra = $arra+1;
    }
    else
     {
      print "g: $g | akth: $akth | arra: $arra | halbe-YES | weil: $akth <= $eh && $akth >= $bh | array: array-$akttermin-$arra<br>";
      $array = array("$akttermin" => array("$arra" => "1"));
      $arra = $arra+1;
      print "g: $g | akth: $akth | arra: $arra | volle-YES | weil: $akth <= $eh && $akth >= $bh | array: array-$akttermin-$arra<br>";
      $array = array("$akttermin" => array("$arra" => "1"));
      $arra = $arra+1;
     }
   }
   else
   {
    print "g: $g | akth: $akth | arra: $arra | halbe-NO | array: array-$akttermin-$arra<br>";
    $array = array("$akttermin" => array("$arra" => "0"));
    $arra = $arra+1;
    print "g: $g | akth: $akth | arra: $arra | volle-NO | array: array-$akttermin-$arra<br>";
    $array = array("$akttermin" => array("$arra" => "0"));
    $arra = $arra+1;
   }
   $akth = $akth+1;
  }
  $akttermin = $akttermin+1;
 }

überschreib ich irgendwas, oder muss ich indizies angeben? ich verstehs einfach nicht...


:(((

nach obennach unten

mehrdimensionales array ausgeben

Die folgende Nachricht zum Thema stammt von: Chris, 30. 11. 2005, 14:19

Hallo,

»» schreib dir doch eine rekursive Funktion, die dir die Inhalte eines Arrays ausgibt und sich selbst aufruft, wenn der Inhalt ein array ist.

Ich glaube, dass eine rekursive Funktion hier nicht in Theresas Interesse sein kann, sondern eine dedizierte Funktion besser wäre.

Die gewünschte Datenstruktur muss sie ohnehin vorher festlegen, und bei der Ausgabe kann sie sie auch gleich überprüfen.

Um also eine Datenstruktur gezielt ausgeben zu können, muss man sie erst einmal beschreiben. Was soll wo stehen?


LG
Chris

nach obennach unten

mehrdimensionales array ausgeben

Die folgende Nachricht zum Thema stammt von: Joachim, 30. 11. 2005, 14:22

Hi,

»» schreib dir doch eine rekursive Funktion
ich bin ziemlich sicher, dass jemandem, der print_r nicht versteht, mit dieser Aussage echt geholfen wurde.

Gruesse, Joachim
--
Am Ende wird alles gut.

nach obennach unten

mehrdimensionales array ausgeben

Die folgende Nachricht zum Thema stammt von: Joachim, 30. 11. 2005, 13:36

Hi,

»» kann mir jemand erklären wie ich ein mehrdimensionales arrays, dass ich hoffentlich richtig erstellt habe, ausgeben kann.
vielleicht mit  print_r($arr) ?

Gruesse, Joachim
--
Am Ende wird alles gut.

nach oben
Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 2005 Teil von November

© 1998-2006 Seite Impressum, Software: Classic Forum