new math\set() - Object
$array set = array() |
Die Elemente der Menge (stets eindeutig und nummerisch indexiert) |
__construct ([$mixed $elements = null])
$elements |
optional; einzelnes Element, Array von Elementen oder ein anderes set-Objekt; default ist null |
initialisiert eine neue Mengen-Instanz und fügt optionale Anfangselemente hinzu
$a = new math\set([1 , 2 , 3 ]) ;
$empty = new math\set() ; // Leere Menge {∅}
__toString ()
gibt die textuelle Darstellung der Menge in der mathematischen Schreibweise zurück:
'{1, 2, 3}' bzw. '{∅}' für die leere Menge
$set = new math\set([1 , 2 ]) ;
echo $set ; // Ausgabe: {1, 2}
add ([$mixed $element = false])
$element |
optional; Einzelwert, Array von Werten oder set-Instanz; default ist false |
fügt ein oder mehrere Elemente zur Menge hinzu; Duplikate werden automatisch herausgefiltert; gibt $this zur Methodenverkettung zurück
$set = new math\set() ;
$set->add(1 )->add([2 , 3 , 3 ]) ;
echo $set ; // Ausgabe: {1, 2, 3}
remove ($mixed $element)
$element |
zu entfernendes Element; Pflicht |
entfernt ein Element aus der Menge, falls vorhanden; nummeriert die internen Indizes neu; gibt $this zur Methodenverkettung zurück
$set = new math\set([1 , 2 , 3 ]) ;
$set->remove(2 ) ;
echo $set ; // Ausgabe: {1, 3}
contains ($mixed $element)
$element |
gesuchtes Element; Pflicht |
prüft mit striktem Typvergleich, ob ein Element in der Menge enthalten ist (x ∈ A); gibt true bei Erfolg zurück, andernfalls false
$set = new math\set(['a' , 'b' ]) ;
$set->contains('a' ) ; // true
$set->contains('c' ) ; // false
isEmpty ()
prüft, ob die Menge leer ist (A = ∅); gibt true zurück wenn keine Elemente enthalten sind, andernfalls false
$set = new math\set() ;
$set->isEmpty() ; // true
clear ()
leert die gesamte Menge; gibt $this zur Methodenverkettung zurück
$set = new math\set([1 , 2 ]) ;
$set->clear() ;
$set->isEmpty() ; // true
count ()
gibt die Mächtigkeit bzw. Kardinalität der Menge (|A|) als integer zurück; implementiert das PHP-Interface \Countable (ermöglicht auch
count($set))
$set = new math\set([10 , 20 , 30 ]) ;
$set->count() ; // 3
count($set) ; // 3
toArray ()
gibt die Elemente der Menge als reines, nummerisch indexiertes PHP-array zurück
$set = new math\set([1 , 2 ]) ;
$set->toArray() ; // [1, 2]
sort ([$integer $flags = SORT_REGULAR])
$flags |
optional; Sortier-Flag (z. B. SORT_REGULAR, SORT_NUMERIC, SORT_STRING); default ist SORT_REGULAR |
sortiert die Elemente der Menge aufsteigend; gibt $this zur Methodenverkettung zurück
$set = new math\set([3 , 1 , 2 ]) ;
$set->sort() ;
echo $set ; // Ausgabe: {1, 2, 3}
getIterator ()
implementiert das PHP-Interface \IteratorAggregate; gibt ein \ArrayIterator-Objekt zurück, womit die Instanz direkt in
foreach durchlaufen werden kann
$set = new math\set(['Apfel' , 'Birne' ]) ;
foreach ($set as $item) {
// $item verarbeiten
}
Operationen
union ($mixed $other)
$other |
zweite Menge als math\set oder array; Pflicht |
Vereinigung (A ∪ B): Alle Elemente, die in A oder B enthalten sind; gibt eine neue math\set-Instanz zurück
$a = new math\set([1 , 2 ]) ;
$b = new math\set([2 , 3 ]) ;
$result = $a->union($b) ; // {1, 2, 3}
intersect ($mixed $other)
$other |
zweite Menge als math\set oder array; Pflicht |
Schnittmenge (A ∩ B): Nur Elemente, die in beiden Mengen vorkommen; gibt eine neue math\set-Instanz zurück
$a = new math\set([1 , 2 , 3 ]) ;
$b = new math\set([2 , 3 , 4 ]) ;
$result = $a->intersect($b) ; // {2, 3}
diff ($mixed $other)
$other |
abzuziehende Menge als math\set oder array; Pflicht |
Differenzmenge bzw. relatives Komplement (A \ B): Alle Elemente aus A, die nicht in B sind; gibt eine neue math\set-Instanz zurück
$a = new math\set([1 , 2 , 3 ]) ;
$b = new math\set([2 , 4 ]) ;
$result = $a->diff($b) ; // {1, 3}
symmetricDiff ($mixed $other)
$other |
zweite Menge als math\set oder array; Pflicht |
Symmetrische Differenz (A Δ B): Elemente in A oder B, aber nicht in beiden ((A \ B) ∪ (B \ A)); gibt eine neue math\set-Instanz zurück
$a = new math\set([1 , 2 , 3 ]) ;
$b = new math\set([2 , 3 , 4 ]) ;
$result = $a->symmetricDiff($b) ; // {1, 4}
cartesianProduct ($mixed $other)
$other |
zweite Menge als math\set oder array; Pflicht |
Kartesisches Produkt (A × B): Berechnet alle geordneten Paare (a, b) über math::cartesianProduct(); gibt ein 2D-array aller Paare zurück
$a = new math\set([1 , 2 ]) ;
$b = new math\set(['x' , 'y' ]) ;
$result = $a->cartesianProduct($b) ;
// [[1, 'x'], [1, 'y'], [2, 'x'], [2, 'y']]
powerSet ()
Potenzmenge P(A): Erzeugt die Menge aller Teilmengen von A inklusive der leeren Menge und A selbst (2|A| Teilmengen) über math::combinations(); gibt ein array gefüllt mit math\set-Instanzen zurück
$set = new math\set([1 , 2 ]) ;
$potenz = $set->powerSet() ;
// Array mit 4 math\set Objekten: {∅}, {1}, {2}, {1, 2}
Mengenbeziehungen
isSubsetOf ($mixed $other)
$other |
Vergleichsmenge als math\set oder array; Pflicht |
prüft, ob diese Menge eine Teilmenge einer anderen ist (A ⊆ B); jedes Element von A muss auch in B enthalten sein; gibt true zurück, andernfalls false
$teil = new math\set([1 , 2 ]) ;
$gesamt = new math\set([1 , 2 , 3 ]) ;
$teil->isSubsetOf($gesamt) ; // true
isProperSubsetOf ($mixed $other)
$other |
Vergleichsmenge als math\set oder array; Pflicht |
prüft, ob diese Menge eine echte Teilmenge einer anderen ist (A ⊂ B); A ist Teilmenge von B und B enthält mindestens ein zusätzliches Element (A ≠ B); gibt true zurück, andernfalls false
$a = new math\set([1 , 2 ]) ;
$b = new math\set([1 , 2 ]) ;
$a->isProperSubsetOf($b) ; // false
$c = new math\set([1 , 2 , 3 ]) ;
$a->isProperSubsetOf($c) ; // true
isSupersetOf ($mixed $other)
$other |
Vergleichsmenge als math\set oder array; Pflicht |
prüft, ob diese Menge eine Obermenge einer anderen ist (A ⊇ B); alle Elemente der Vergleichsmenge müssen in dieser Menge enthalten sein; gibt true zurück, andernfalls false
$gesamt = new math\set([1 , 2 , 3 ]) ;
$teil = new math\set([2 , 3 ]) ;
$gesamt->isSupersetOf($teil) ; // true
isDisjointWith ($mixed $other)
$other |
Vergleichsmenge als math\set oder array; Pflicht |
prüft, ob zwei Mengen disjunkt sind (A ∩ B = ∅); es dürfen keine gemeinsamen Elemente existieren; gibt true zurück, andernfalls false
$a = new math\set([1 , 2 ]) ;
$b = new math\set([3 , 4 ]) ;
$a->isDisjointWith($b) ; // true
equals ($mixed $other)
$other |
Vergleichsmenge als math\set oder array; Pflicht |
prüft, ob zwei Mengen identisch sind (A = B); beide Mengen müssen exakt dieselben Elemente enthalten, unabhängig von der Reihenfolge; gibt true zurück, andernfalls false
$a = new math\set([1 , 2 , 3 ]) ;
$b = new math\set([3 , 1 , 2 ]) ;
$a->equals($b) ; // true