Teil von  SELFPHP   Teil von  Praxisbuch  Teil von  Sprachelemente und Syntax  Teil von  Datentypen
  +++ SELFPHP CronJob-Service :: Jetzt auch als Professional-Version verfügbar! +++



:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: SELFPHP Forum ::

Fragen rund um die Themen PHP? In über 120.000 Beiträgen finden Sie sicher die passende Antwort!  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

:: Qozido ::

Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.   

 
 
Arrays




Ein Array in PHP ist im eigentlichen Sinne eine geordnete Abbildung. Eine Abbildung ist ein Typ, der Werte auf Schlüssel abbildet. Dieser Typ ist auf mehrere Arten optimiert, sodass Sie ihn auf verschiedene Weise benutzen können:
  • als reales Array
  • als Liste (Vektor)
  • als Hash-Tabelle
  • als Verzeichnis
  • als Sammlung
  • als Stapel (Stack)
  • als Warteschlange (Queue)

und vieles mehr.

Da Sie ein weiteres PHP-Array als Wert benutzen können, ist es recht einfach, Baumstrukturen zu simulieren und Verschachtelungen vorzunehmen.


Angabe mit array()

Ein Array kann mithilfe des Sprachkonstrukts array() erzeugt werden. Es benötigt eine bestimmte Anzahl von Komma-getrennten Schlüssel/Wert-Paaren.

Ein Schlüssel ist entweder eine Zahl vom Typ integer oder ein String. Wenn ein Schlüssel die Standarddarstellung einer Integer-Zahl ist, wird es als solche interpretiert werden:
  • "8" wird als 8 interpretiert
  • "08" wird als 08 interpretiert


Wert

Der Wert eines Arrayeintrags kann ein beliebiger Datentyp sein.


Schlüssel

Falls Sie einen Schlüssel weglassen, wird das Maximum des Integer-Indizes genommen und der neue Schlüssel wird dieses Maximum + 1 sein. Das gilt auch für negative Indizes, da ein Integer negativ sein kann. Ist zum Beispiel der höchste Index -6, wird der neue Schlüssel den Wert -5 haben. Falls es bis dahin keine Integer-Indizes gibt, wird der Schlüssel zu 0 (Null). Falls Sie einen Schlüssel angeben, dem schon ein Wert zugeordnet wurde, wird dieser Wert überschrieben.

Wenn Sie true als Schlüssel benutzen, wird dies als Schlüssel vom Typ integer 1 ausgewertet. Benutzen Sie false als Schlüssel, wird dies als Schlüssel vom Typ integer 0 ausgewertet. Die Benutzung von NULL als Schlüssel führt dazu, dass der Schlüssel als leerer String gewertet wird. Verwenden Sie einen leeren String als Schlüssel, wird ein Schlüssel mit einem leeren String und seinem Wert erzeugt oder überschrieben. Das entspricht nicht der Verwendung von leeren Klammern.

Sie können keine Arrays oder Objekte als Schlüssel benutzen. Der Versuch wird mit einer Warnung enden: Illegal offset type.

// Schlüssel ist entweder ein string oder integer
// Wert kann irgendetwas sein.
array( [Schlüssel =>] Wert, ...)

Hier einige Beispiele:

<pre>
<?php
$arrays = array (
"Fruechte" => array ("a"=>"Kirsche", "b"=>"Birne"),
"Zahlen" => array (1, 2, 3, 4, 5, 6),
"Autos" => array ("Audi", 5 => "Mercedes", "BMW")
);
print_r($arrays);
?>
</pre>

Ausgabe
Array
(
[Fruechte] => Array
  (
    [a] => Kirsche
    [b] => Birne
  )

  [Zahlen] => Array
  (
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
    [5] => 6
  )

  [Autos] => Array
  (
    [0] => Audi
    [5] => Mercedes
    [6] => BMW
  )

)



Automatischer Index mit array()

<pre>
<?php
$meinarray = array( 10,
    20,
    30,
    40,
    50,
    60,
    70,
    4=>1,
    5=>1,
    6=>13
  );
print_r($meinarray);
?>
</pre>

Ausgabe
Array
(
  [0] => 10
  [1] => 20
  [2] => 30
  [3] => 40
  [4] => 1
  [5] => 1
  [6] => 13
)


Auf 1 basierter Index mit array()

<pre>
<?php
$monate = array(1 => 'Januar', 'Februar', 'März');
print_r($monate);
?>
</pre>

Ausgabe
Array
(
  [1] => Januar
  [2] => Februar
  [3] => März
)


Erzeugen/Verändern mit eckigen Klammern

Sie können ein bestehendes Arrays durch explizites Zuweisen von Werten verändern. Weisen Sie dem Array Werte zu, indem Sie den Schlüssel in eckigen Klammern angeben. Sie können den Schlüssel auch weglassen. In diesem Fall schreiben Sie einfach ein leeres Klammerpaar ("[]") hinter den Variablennamen.

// Schlüssel ist entweder ein String oder ein nicht-negativer Integer
// Wert kann irgendetwas sein.
$arr[Schlüssel] = Wert;
$arr[] = Wert;

Beispiel

<pre>
<?php
$monate = array(1 => 'Januar', 'Februar', 'März');
$monate[4] = "April";
$monate[] = "Mai";
print_r($monate);
?>
</pre>

Ausgabe
Array
(
  [1] => Januar
  [2] => Februar
  [3] => März
  [4] => April
  [5] => Mai
)



Falls das Array bis dahin nicht existiert, wird es erzeugt. Das ist also eine alternative Syntax, um ein Array zu erzeugen. Um einen bestimmten Wert zu ändern, weisen Sie diesem einfach einen neuen Wert zu.

Beispiel

<pre>
<?php
$personen[0] = "VW";
$personen[1] = "BMW";
$personen[2] = "OPEL";
print_r($personen);
?>
</pre>

Ausgabe
Array
(
  [0] => VW
  [1] => BMW
  [2] => OPEL
)

Sollten Sie ein Schlüssel/Wert-Paar entfernen wollen, benutzen Sie unset().

Beispiel
<pre>
<?php
$personen[0] = "VW";
$personen[1] = "BMW";
$personen[2] = "OPEL";

// Löschen
unset ($personen[1]);
print_r($personen);
?>
</pre>

Ausgabe
Array
(
  [0] => VW
  [2] => OPEL
)


Nützliche Funktionen

Es existiert eine Vielzahl von nützlichen Funktionen, um mit Arrays zu arbeiten. Einige davon werde ich im Abschnitt 3.10 »Arrays« gesondert behandeln.

Beispiel

<?php
// Array
$daten[0] = 100;
$daten[1] = 300;
$daten[2] = 500;
$anzahl = count($daten);
// Ausgabe (3)
echo $anzahl;
?>


Schreibweisen und ihre Besonderheiten

Warum ist $daten[eintrag] falsch? – Sie sollten immer Anführungszeichen für einen assoziativen Index eines Arrays benutzen. Zum Beispiel sollten Sie $daten['eintrag'] und nicht $daten[eintrag] benutzen. Aber warum ist $daten[eintrag] falsch? Sicher ist Ihnen folgende Syntax in einigen PHP-Skripts bereits begegnet:

<?php
$daten[eintrag] = "Matze";
// Ausgabe – Matze
echo $daten[eintrag];
?>

Es ist falsch, funktioniert aber. Warum ist diese Schreibweise falsch? Der Grund ist, dass dieser Code eine undefinierte Konstante eintrag enthält anstatt eines Strings 'eintrag', beachten Sie die Anführungszeichen. PHP könnte in Zukunft Konstanten definieren, die unglücklicherweise für Ihren Code den gleichen Namen verwenden. Es funktioniert, weil die undefinierte Konstante in einen String mit gleichem Namen umgewandelt wird. Sprich, PHP nimmt an, dass Sie eintrag wörtlich gemeint haben, wie den String 'eintrag', aber vergessen haben, die Anführungszeichen zu setzen. Daher ist die folgende Schreibweise zu bevorzugen:

<?php
$daten['eintrag'] = "Matze";
// Ausgabe – Matze
echo $daten['eintrag'];
?>

Hinweis: Noch mehr rund um das Thema Arrays erfahren Sie im Abschnitt 3.10 »Arrays«.



 




:: Premium-Partner ::

Webhosting/Serverlösungen


Premium-Partner MECO Systemhaus GmbH & Co. KG
Premium-Partner PSW GROUP GmbH & Co. KG
Premium-Partner BPI-Systeme
Premium-Partner Pixel X
Premium-Partner
 

:: SELFPHP Sponsoren ::


Microsoft Deutschland GmbH
twosteps.net - ...Premium-Webhosting
Sedo - Bei uns wird PHP großgeschrieben
hostfactory.ch - OptimaNet Schweiz AG
ZEND - The PHP Company
Kaspersky Labs
HighText iBusiness
SELFPHP Sponsoren
 

Qozido


© 2001-2009 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt