Ein Array mit Zahlen/Buchstaben füllen (Thema: PHP Beispiele)

Wie ein Array in PHP mit Ziffern oder beliebigen anderen Zeichen gefüllt werden kann

1. Array mit n mal dem selben Zeichen füllen

Die Funktion array_fill($startIndex, $count, $char) füllt ein Array mit $count mal dem Zeichen $char, wobei die zugewiesenen Schlüssel bei $startIndex beginnen. Das nächste Beispiel zeigt die Anwendung, indem dem Array $arr sieben mal das Zeichen „x” zugewiesen wird (ergibt sieben Elemente).

PHP-Code: array_fill() verwenden, um ein Array mit dem gleichen Wert aufzufüllen
<?php
	$arr = array_fill(0, 7, 'x');
	var_dump($arr);
?>

HTML-Code: Ausgabe
array(8) {
  [0]=>
  string(1) "x"
  [1]=>
  string(1) "x"
  [2]=>
  string(1) "x"
  [3]=>
  string(1) "x"
  [4]=>
  string(1) "x"
  [5]=>
  string(1) "x"
  [6]=>
  string(1) "x"
  [7]=>
  string(1) "x"
}


Alternativ zu array_fill() kann die Kombination aus str_repeat($str, $count) und str_split($str) verwendet werden. Erstere Funktion erstellt einen String, welcher $count mal den String $str (aneinandergereiht) enthält. Über str_split($str) werden wiederum alle Zeichen dieses Strings voneinander getrennt und in ein Array umgewandelt, sodass jedes Element exakt ein Zeichen enthält. Das Ergebnis ist hier äquivalent zu array_fill().

PHP-Code: Effekt von array_fill() mit str_repeat() und str_split() nachbilden
<?php
	$arr = array();
	$str = str_repeat('x', 10);
	$arr = str_split($str);
	var_dump($arr);
?>

HTML-Code: Ausgabe
array(10) {
  [0]=>
  string(1) "x"
  [1]=>
  string(1) "x"
  [2]=>
  string(1) "x"
  [3]=>
  string(1) "x"
  [4]=>
  string(1) "x"
  [5]=>
  string(1) "x"
  [6]=>
  string(1) "x"
  [7]=>
  string(1) "x"
  [8]=>
  string(1) "x"
  [9]=>
  string(1) "x"
}


2. Ein Array mit allen Zahlen zwischen A und B füllen

Über die Funktion range($a, $b) kann ein Array erzeugt werden, welches alle Integer im Bereich zwischen $a und $b enthält. ($a und $b sind jeweils einschließlich.) Jeder Integer wird zu einem eigenen Element im Rückgabearray.

PHP-Code: Ein Array mit den Zahlen zwischen zwei Grenzen bilden
<?php
	$arr = array();
	$arr = range(0, 5);
	var_dump($arr);
?>

HTML-Code: Ausgabe
array(6) {
  [0]=>
  int(0)
  [1]=>
  int(1)
  [2]=>
  int(2)
  [3]=>
  int(3)
  [4]=>
  int(4)
  [5]=>
  int(5)
}


Statt range() kann natürlich auch eine for-Schleife verwendet werden. Diese muss nur eine Zählvariable (hier $x) hochzählen, welche an der unteren Schranke ($a) beginnt und an der oberen ($b) endet. Bei jeder Iteration muss der Wert der Zählvariable als Element zum Array hinzugefügt werden. (Diese Methode ist offensichtlich langsamer als range().)

PHP-Code: Verhalten von range() über for-Schleife kopieren
<?php
	$arr = array();
	for ($x=0; $x<5; $x++) {
		$arr[] = x;
	}
	var_dump($arr);
?>

HTML-Code: Ausgabe
array(5) {
  [0]=>
  int(0)
  [1]=>
  int(1)
  [2]=>
  int(2)
  [3]=>
  int(3)
  [4]=>
  int(4)
}


3. Ein Array mit den Buchstaben von A bis Z füllen

Eine for-Schleife kann sehr einfach genutzt werden, um ein Array mit Buchstaben von A bis Z zu füllen. Statt einen Integer als Zählvariable zu verwenden, benutzt man dann einfach einen String. Dieser beginnt zum Beispiel bei „a” (untere Schranke) und endet bei „f”. PHP bildet bei einer Inkrementierung um eins ($x++) automatisch den jeweils nachfolgenden Buchstaben.

PHP-Code: Mit for-Schleife alle Buchstaben zwischen zwei Zeichen bilden
<?php
	$arr = array(); 
	for ($x='a'; $x<'f'; $x++) {
		$arr[] = $x;
	}
	var_dump($arr);
?>

HTML-Code: Ausgabe
array(5) {
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "b"
  [2]=>
  string(1) "c"
  [3]=>
  string(1) "d"
  [4]=>
  string(1) "e"
}


Erreicht man das Ende des Alphabets (z), dann wechselt PHP automatisch zu aa, ab, ac, usw. Das nächste Beispiel demonstriert dies. Statt (zum Beispiel) $x<'af' muss man hier allerdings $x!=='af' verwenden, da PHP sonst die Schleife sofort beendet.

PHP-Code: Mit for-Schleife Buchstaben über z hinaus bilden
<?php
	$arr = array(); 
	for ($x='x'; $x!=='af'; $x++) {
		$arr[] = $x;
	}
	var_dump($arr);
?>

HTML-Code: Ausgabe
array(8) {
  [0]=>
  string(1) "x"
  [1]=>
  string(1) "y"
  [2]=>
  string(1) "z"
  [3]=>
  string(2) "aa"
  [4]=>
  string(2) "ab"
  [5]=>
  string(2) "ac"
  [6]=>
  string(2) "ad"
  [7]=>
  string(2) "ae"
}


4. Ein Array mit aufeinander folgenden ASCII-Zeichen füllen

Statt nur mit Zeichen von a bis z kann man ein Array auch mit jedem beliebigen ASCII-Zeichen füllen. Diese bestimmt man am besten mit chr($dezimalwert), wobei $dezimalwert die Nummer des ASCII-Zeichens ist und chr($dezimalwert) das zu $dezimalwert zugehörige Zeichen als String zurückgibt. Auch hier kann eine for-Schleife verwendet werden, um eine bestimmte Anzahl aufeinander folgender Zeichen hinzuzufügen.

PHP-Code: for-Schleife nutzen, um ein Array mit beliebigen ASCII-Zeichen zu füllen
<?php
	$arr = array();
	for ($x=52; $x<60; $x++) {
		$arr[] = chr($x);
	}
	var_dump($arr);
?>

HTML-Code: Ausgabe
array(8) {
  [0]=>
  string(1) "4"
  [1]=>
  string(1) "5"
  [2]=>
  string(1) "6"
  [3]=>
  string(1) "7"
  [4]=>
  string(1) "8"
  [5]=>
  string(1) "9"
  [6]=>
  string(1) ":"
  [7]=>
  string(1) ";"
}


5. Ein Array mit zufälligen ASCII-Zeichen füllen

chr($dezimalwert) kann auch verwendet werden, um ein Array mit zufälligen ASCII-Zeichen zu füllen. Statt einer aufsteigenden Zählvariable verwendet man dazu einfach bei jeder Iteration einen Zufallswert. Dieser kann über mt_rand($a, $b) bestimmt werden, wobei $a die untere Schranke und $b die obere ist.

PHP-Code: Array-Elemente mit zufälligen ASCII-Zeichen erzeugen
<?php
	// Seed für Zufallsgenerator festlegen, damit
	// das Beispiel immer gleich verläuft. Sollte man sonst
	// nicht machen.
	mt_srand(22);
	
	$arr = array();
	// 7 Zeichen hinzufügen
	for ($x=0; $x<7; $x++) {
		// Zufälliges ASCII-Zeichen mit Nummer zwischen 1 und 255 hinzufügen.
		$arr[] = chr(mt_rand(1, 255));
	}
	var_dump($arr);
?>

HTML-Code: Ausgabe
array(7) {
  [0]=>
  string(1) "�"
  [1]=>
  string(1) "M"
  [2]=>
  string(1) "{"
  [3]=>
  string(1) "F"
  [4]=>
  string(1) "l"
  [5]=>
  string(1) "^"
  [6]=>
  string(1) "&"
}


Um unsere Webseite für Sie optimal zu gestalten und fortlaufend verbessern zu können, verwenden wir Cookies. Durch die weitere Nutzung der Webseite stimmen Sie der Verwendung von Cookies zu. Weitere Informationen zu Cookies erhalten Sie in unserer Datenschutzerklärung. OK