Home  PHP Projekte  PHP Schulung  Informationsquellen  Geschichte  Core PHP  Einbindung in HTML  Kommentare  Variablen  Konstanten  Operatoren  Funktionen  Kontrollstrukturen  Arrays  Arrayfunktionen  Objektorientierung  Fortgeschrittenes PHP  Templates  Cache-Technologien  OOH Forms  Technik der Site  Büchertipps  Fotografie  Airbrush  Kontakt  Stuff 
|
Funktionen rund um Arrays
Als Array-Konstruktor dient array().
Die Mächtigkeit (eindimensionaler Arrays) wird mit count() bestimmt.
Es kann ebenfalls sizeof() benutzt werden. count() ist flexibler, da
es im Gegensatz zu sizeof() auch skalare Werte akzeptiert. Wird
ein skalarer Wert übergeben, liefert count() 1, sofern die Variable
existiert und 0, wenn sie unbekannt ist.
| count() vs. sizeof() und Arrays |
Top |
|
<?php $skalar = "Nur count() mag mich und sagt '1'"; $array = array( 0 => "eins", 1 => "zwei", 2 => "" ); // Syntax: sizeof(array $array) printf("sizeof($array): %d\n", sizeof($array));
// Syntax: count(mixed $var) printf("count($skalar): %d\n", count($skalar)); printf("count($undef): %d\n", count($undef)); printf("count($array): %d\n", count($array)); ?>
|
|
Ausgabe
|
Top |
sizeof($array): 3
count($skalar): 1
count($undef): 0
count($array): 3
|
|
|
Die Anzahl der Elemente in einem mehrdimensionalen Array kann
mit einer rekursiven Funktion ermittelt werden.
| count() und mehrdimensionale Arrays |
Top |
|
<?php // Anzahl der Elemente in einem Hash ermitteln function hash_count($array) {
if (!is_array($array)) {
return 0;
} else {
$count = 0; foreach($array as $key => $value) if (is_array($value)) $count += hash_count($value); else ++$count;
}
return $count; }
$array = array( 0 => "ein", 1 => array("zwei", "drei") ); printf("count($array): %d\n", count($array)); printf("hash_count($array): %d\n", hash_count($array)); ?>
|
|
Ausgabe
|
Top |
count($array): 2
hash_count_($array): 3
|
|
|
Kaum bekannt ist die Möglichkeit Arrays mit array_walk() auszulesen,
und eine Callback Funktion zu definieren,
welche die Elemente manipulieren kann. Mit var_dump()
können die Datenstrukturen zum Debuggen gedumpt werden.
Alternativ steht print_r() zur Verfügung, wobei Vorsicht
geboten ist, weil print_r() Probleme mit Referenzen hat.
| array_walk() |
Top |
|
<?php $array = array( 0 => "erste Ebene", 1 => array( 0 => "zweite Ebene" ) ); // Arrays mit array_walk() durchlaufen function traverse_array($value) { print $value . "\n"; }
function modify_array(&$value, $key, $user = "") { printf("%s => %s\n", $key, $value); $value = ("" == $user) ? $key : $user; }
array_walk($array, "traverse_array"); print "\n"; array_walk($array, "modify_array"); print "\n";
var_dump($array); print_r($array); ?>
|
|
Ausgabe
|
Top |
erste Ebene
Array
0 => erste Ebene
1 => Array
array(2) {
[0]=>
int(0)
[1]=>
int(1)
}
Array
(
[0] => 0
[1] => 1
)
|
|
|
Es stehen diverse Sortierfunktionen zur Verfügung:
- Userdefiniert: uasort(), uksort(), usort()
- Vordefiniert: ksort(), krsort(), asort(), arsort()
Es gibt in PHP 4 viele neue, hilfreiche
Funktionen zur Arbeit mit Arrays.
Ein gesondertes Studium der Funktionen ist eine Pflichtaufgabe für alle PHP Programmierer.
- array_merge(), array_slice()
- array_pop(), array_push()
- in_array()
< ^ >
|