Arrays

Die HTML-Anweisungen der Beispiele wurden mit einem Leerzeichen ungültig gemacht, damit sie nicht ausgeführt werden. Für korrekte HTML-Anweisungen ersetze die Zeichenfolge '< ' durch '<'.

Eindimensionale numerische Arrays

< html>
< body>

< ?php
   $tp = array(17.5, 19.2, 21.8, 21.6, 17.5);
   $tp[5] = 20.2;
   $tp[6] = 16.6;
   for($i=0; $i<=6; $i = $i+1)
   {
      echo "$tp[$i] < p>";
   }
?>

< /body>
< /html>

Statistische Auswertungen

uh07.htm:
< html>
< body>
Bitte geben Sie den Grenzwert ein:
< form action = "uh07.php" method = "post">
    < input name="gr"> Grenzwert< p>
    < input type="submit">
    < input type="reset">
< /form>
< /body>
< /html>

uh07.php:
< html>
< body>
< ?php
   $fp = fopen("ug14data.txt","r");
   if ($fp)
   {

      // Alle Werte in einen Array lesen
      $i = 0;
      while (!feof($fp))
      {
         $zeile = fgets($fp, 100);
         $tp[$i] = doubleval($zeile);
         $i = $i + 1;
      }
      fclose($fp);

      // Anzahl feststellen
      $anzahl = sizeof($tp);

      // Werte oberhalb der Grenze zählen
      $c = 0;
      $grenze = doubleval($gr);
      for($i=0; $i < $anzahl; $i=$i+1)
      {
         if ($tp[$i] > $grenze)
            $c = $c + 1;
      }

      // Ausgabe
      if ($anzahl > 0)
      {
         $anteil = $c / $anzahl * 100;
         $ausgabe = number_format($anteil,2);
         echo "$ausgabe Prozent der Werte";
         echo " liegen oberhalb von $gr";
      }
      else
         echo "Die Datei beinhaltete keine Werte";
   }
   else
      echo "Datei wurde nicht gefunden";
?>
< /body>
< /html>

Eindimensionale assoziative Arrays

< html>
< body>

< ?php
   $tp = array("Montag"=>17.5, "Dienstag"=>19.2,
               "Mittwoch"=>21.8);
   $tp["Donnerstag"] = 21.6;
   $tp["Freitag"] = 17.5;
   $tp["Samstag"] = 20.2;
   $tp["Sonntag"] = 16.6;

   // Das erste Element
   list($name,$wert) = each($tp);
   echo "$name, $wert < p>";
   reset($tp);

   // Alle Elemente aus dem Array
   while(list($name,$wert) = each($tp))
   {
      echo "$name, $wert < p>";
   }
?>
< /body>
< /html>

Sortieren von assoziativen Arrays

< html>
< body>
< ?php
   $tp["Montag"] = 17.5;
   $tp["Dienstag"] = 19.2;
   $tp["Mittwoch"] = 21.8;
   $tp["Donnerstag"] = 21.6;
   $tp["Freitag"] = 17.5;
   $tp["Samstag"] = 20.2;
   $tp["Sonntag"] = 16.6;

   // Ausgabe unsortiert
   while(list($name,$wert) = each($tp))
      echo "$name, $wert ";

   // sortiert nach Werten, aufsteigend
   // also Maximum zuerst
   echo "

"; asort($tp); while(list($name,$wert) = each($tp)) echo "$name, $wert "; // sortiert nach Werten, absteigend // also Minimum zuerst echo "

"; arsort($tp); while(list($name,$wert) = each($tp)) echo "$name, $wert "; // sortiert nach Keys, aufsteigend echo "

"; ksort($tp); while(list($name,$wert) = each($tp)) echo "$name, $wert "; ?> < /body> < /html>

Eindimensionale Arrays und Datenbanken

< html>
< body>
< ?php
   // Die Informationen werden aus der Datenbank geholt
   $db = mysql_connect();
   $res = mysql_db_query("firma",
          "select * from personen");
   mysql_close($db);

   // Die Datensätze werden einzeln gelesen
   while($zeile = mysql_fetch_array($res))
   {
      echo $zeile["vorname"] . " ";
      echo $zeile["name"] . "< p>";
   }

?>
< /body>
< /html>

Zweidimensionale numerische Arrays

< html>
< body>
< ?php
   // 1. Zeile und 2. Zeile
   $pers = array(array("Maier", "Hans", 6714, 3500),
            array("Schmitz", "Peter", 81343, 3750));

   // 3. Zeile
   $pers[2][0] = "Mertens";
   $pers[2][1] = "Julia";
   $pers[2][2] = 2297;
   $pers[2][3] = 3621.50;

   for($i=0; $i<3; $i=$i+1)
   {
      for($k=0; $k<4; $k=$k+1)
      {
         echo $pers[$i][$k] . " ";
      }
      echo "< p>";
   }
?>
< /body>
< /html>

Zweidimensionale gemischte Arrays

< html>
< body>
< ?php
   // 1. Zeile und 2. Zeile
   $pers = array(array("Name"=>"Maier",
                       "Vorname"=>"Hans",
                       "Personalnummer"=>6714,
                       "Gehalt"=>3500),
                 array("Name"=>"Schmitz",
                       "Vorname"=>"Peter",
                       "Personalnummer"=>81343,
                       "Gehalt"=>3750));

   // 3. Zeile
   $pers[2]["Name"] = "Mertens";
   $pers[2]["Vorname"] = "Julia";
   $pers[2]["Personalnummer"] = 2297;
   $pers[2]["Gehalt"] = 3621.50;

   // Ausgabe
   for($i=0; $i<3; $i = $i+1)
   {
      // Teil-Arrays
      while(list($name,$wert) = each($pers[$i]))
      {
         echo "$wert ";
      }
      echo "< p>";
   }
?>
< /body>
< /html>

Zweidimensionale assoziative Arrays, Datenbanken

< html>
< body>
< ?php
   // Die Informationen werden aus der Datenbank geholt
   $db = mysql_connect();
   $res = mysql_db_query("firma",
          "select * from personen");
   mysql_close($db);

   // Die Datensätze werden einzeln gelesen
   while($temp = mysql_fetch_array($res))
   {
      // Key für den zweidim. Array ermitteln
      $ax = $temp["personalnummer"];

      // Die Informationen aus dem Datensatz werden
      // über den Key im zweidim. Array gespeichert
      $tab[$ax]["name"] = $temp["name"];
      $tab[$ax]["vorname"] = $temp["vorname"];
      $tab[$ax]["gehalt"] = $temp["gehalt"];
   }

   // Alle Datensätze mit allen Inhalten anzeigen
   while(list($dsname,$dswert) = each($tab))
   {
      // Der Key wird ausgegeben
      echo "$dsname : ";

      // Informationen aus dem Datensatz ausgeben
      while(list($name,$wert) = each($dswert))
      {
         echo "$wert ";
      }
      echo "< p>";
   }

   // Einzelne Beispiel-Informationen werden angezeigt
   echo $tab["2297"]["name"] . "< p>";
   echo $tab["6715"]["vorname"] . "< p>";
   echo $tab["6714"]["gehalt"] . "< p>";
?>
< /body>
< /html>