Benutzer-Werkzeuge

Webseiten-Werkzeuge


php:array

Array (Zuordnung von Werten zu Schlüsseln)

Übersicht

A. Mögliche Dimensionen eines Arrays:

  1. eindimensionales Array
  2. zweidimensionales Array
  3. mehrdimensionales Array

B. Indizierung eines Arrays:

  1. numerisches Array
  2. Assoziatives Array

Elemente in ein Array einfügen

Die PHP-Funktion „array_push“ fügt ein oder mehrere Elemente an das Ende eines Arrays an. Die PHP-Funktion „array_unshift“ fügt ein oder mehr Elemente am Anfang eines Arrays ein.

Mit folgender Funktion können Sie Elemente eines Arrays in gewünschter Position in einem anderen Array einfügen:

array_insert.php
function insert_array( $arr1, $pos, $arr2 )
{
    $totalArr1 = count( $arr1 );
    $totalArr2 = count( $arr2 );
    $newArr = array(); // neues Array erstellen
 
    if( $pos <= $totalArr1 && $totalArr2 > 0 )
    {
        foreach( $arr1 as $key=>$val )
        {
            $newArr[$key] = $val; // Inhalt vom 1. Array hinzufügen
 
            if( --$pos == 0 ) // Position erreicht
            {
                foreach( $arr2 as $key2=>$val2 )
                {
                    $newArr[$key2] = $val2; // Inhalt vom 2. Array hinzufügen
                }
            }
        }
    }
 
    return $newArr;
}

Anwendungsbeispiel:

$navi = array(
    "home" => "Startseite",
    "about" => "Über uns",
    "contact" => "Kontakt"
);
 
if( $Migtlied )
{
    $navi = array_insert($navi, 2, array( "members" => "Mitgliederbereich"));
}

Automatisches füllen eines Arrays

Mit der PHP-Funktion range() kann ein Array automatisch mit einer Zahlenreihe befüllt werden. Das folgende Beispiel erstellt ein Array mit jeder zweiten Zahlen zwischen 1 und 16:

$numbers = range( 0, 16, 2 );

Ergebnis:

Array
(
    [0] => 0
    [1] => 2
    [2] => 4
    [3] => 6
    [4] => 8
    [5] => 10
    [6] => 12
    [7] => 14
    [8] => 16
)

Sortierung

Einfache Sortierung nach Schlüsselwert (key)

Beispiel:

$Farben = [ 2 => "blau",  1 => "gelb",  3 => "grün",  0 => "rot", 4 => "schwarz" ];
ksort( $Farben );
print_r( $Farben );

Ergebnis:

Array ( [0] => rot [1] => gelb [2] => blau [3] => grün [4] => schwarz )

Sortierung eines Mehrdimensionalem Array

Beispiel: Alle Adress-Objekte sollen nach Postleitzahl sortiert werden:

public function sortPLZ( $a, $b )
{
	if( $a->plz == $b->plz )
		return 0;
 
	return( $a->plz < $b->plz ) ? -1 : 1;
}
 
usort( $adressen, 'sortPLZ' ) );

Filterung

Beispiel: Alle Spielscheine aussortieren, die nicht gewonnen haben:

public function SpielscheinFilter( $Spielschein )
{
	return( $Spielschein['gewonnen'] );
}
 
$Spielscheine = array_filter( $Spielscheine, "SpielscheinFilterFilter" );

Es werden nur Spielscheine berücksichtigt, bei denen die Callback-Funktion „true“ zurück gibt.

Aufruf der Funktionen innerhalb von Klassen

Wenn die Funktionen „sortPLZ“ und „SpielscheinFilter“ in als Methoden in Klassen erstellt wurden können sie wie folgt aufgerufen werden:

usort( $adressen, [ $this, "sortPLZ"] );
$Spielscheine = array_filter( $Spielscheine, [ $this, "SpielscheinFilterFilter" ] );

Anstelle von $this könen auch andere, externe Klassen angesprochen werden. Diese sind dann als Zeichenkette in Anführungsstrichen zu setzen.

Anonyme Funktionen

Seit der PHP-Version 5.3 können für alle oben aufgeführten Beispiele auch mit anonyme Funktionen benutzt werden. Weitere Informationen über anonyme Funktionen


Schlüssel und Werte umdrehen

Mit der PHP-Funktion „array_flip()“ können die Schlüssel (keys) und Werte (values) eines Array einfach umgedreht werden. Ein Beispiel hierfür ist unten auf dieser Seite zu finden.


Lücken im key eines numerischen Arrays entfernen

Der Passworggenerator ist ein schönes Beispiel dafür, wie ein Array von einem anderen extrahiert werden kann und wie die dadurch entstehenden Lücken im index eines numerischen Arrays entfernt werden.

php/array.txt · Zuletzt geändert: 2020/12/17 15:29 von webproducer