|
ulf-wendel.de   
|
|
 Home < PHP Schulung  < Core PHP  < Arrays  < Arrayfunktionen    |       |  
Print Version    
---
|
|
 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(
             
=> "eins"
             
=> "zwei"
             
=> ""
           
); 
           
 
// 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( 
           
=> "ein"
           
=> 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(
             
=> "erste Ebene",
             
=> array( => "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()

<  ^  >

 Neues

 XML/XSLT Menu
 OOH-Form Rewrite

 PEAR Cache:
  SHM Container

 Suchstring Parser
 Buchrezensionen
 PEAR Cache:
  OutputCompression

 PEAR Menu Browser
 PEAR Menu Tutorial 
 PEAR Cache


 Tipp

Download Version:
oben rechts,
Download *.tar.gz
|
| --- |
|
  Top   |   <  ^  >   |   phpOpenTracker Statistik   |   URL: http://www.ulf-wendel.de/schulung/core/arrays_mehr.php   |   Stand: 17.01.2002   |   © Ulf Wendel   
|
| --- |

0.018 s Bearbeitungszeit, 0.002 s IT[X], 0.003 s Menu 3