„Yii Helpers” változatai közötti eltérés
59. sor: | 59. sor: | ||
] | ] | ||
</pre> | </pre> | ||
+ | |||
+ | === map() metódus === | ||
+ | A metódus segítségével $kulcs => $érték párokat hozhatunk létre. Lehetőség van továbbá a csoportosításra is. A visszatérési érték az említett párokat tartalmazó asszociatív tömb.<br> | ||
+ | |||
+ | <code>'''ArrayHelper::map($tomb, ’id’, ’name’, ’type’);'''</code><br> | ||
+ | |||
+ | Első paraméter a tömb, másodiknak megkell adnunk azt az attribútumot melyből szeretnénk, hogy a $kulcs legyen ($from), harmadiknak pedig azt az attribútumot melyből szeretnénk, hogy $érték legyen ($to). A negyedik paraméter opcionális, itt adhatjuk meg, hogy végezzen-e csoportosítást és ha igen akkor pedig melyik attribútum alapján. Callback függvények használhatóak. A fent leírt kód alapján a metódus visszatérési értéke így nézne ki: | ||
+ | <pre> | ||
+ | 220 => [ | ||
+ | 1 => ’Fred’, | ||
+ | 4 => ’Fredddy’ | ||
+ | ], | ||
+ | 30 => [ | ||
+ | 3 => ’Fredddy’, | ||
+ | 5 => ’Fredddy’ | ||
+ | ] | ||
+ | </pre> | ||
+ | |||
+ | === multisort() metódus === | ||
+ | A többdimenziós tömbök sorba rendezésére szolgál. Történhet egy vagy több kulcs alapján is. A rendezés iránya (csökkenő / növekvő sorrend) is megadható. Void metódus nincs visszatérési értéke, a megadott tömbön végzi el a sorba rendezést.<br> | ||
+ | |||
+ | <code>'''ArrayHelper::multisort($tomb, [’type’, ’id’], [SORT_ASC, SORT_DESC]);'''</code><br> | ||
+ | |||
+ | Első paraméter a tömb, ha asszociatív akkor a sorrendezett tömb megtartja a kulcsokat. Második paraméterben kell megadnunk mely attribútumok alapján rendezzen sorba, callback függvény használata lehetséges. Több szempontot is megadhatunk tömb formájában, a sorrend meghatározó. Harmadik paraméterként opcionálisan megadhatjuk a sorba rendezés irányát, alapértelmezetten ez ’SORT_ASC’. Ha az attribútumokat különböző módon szeretnénk sorba rendezni akkor tömböt átadva tehetjük ezt meg. Tehát a fenti példa alapján a ’type’ növekvő sorrendben, az ’id’ csökkenő sorrendben kerül rendezésre. Lehetséges továbbá egy negyedik paraméter is, ez a ’sortFlag’, beállíthatjuk, hogyan kezelje a sorba rendezés értékeit, szövegként vagy számként stb. alapértelmezetten ’SORT_REGULAR’. A sorba rendezett tömb, ’type’ alapján növekvő, majd ’id’ alapján csökkenő sorrendben: | ||
+ | <pre> | ||
+ | 0 => | ||
+ | ’id’ => 2, | ||
+ | ’name’ => ’Fredddy’, | ||
+ | ’type’ => 30 | ||
+ | ] | ||
+ | 1 => [ | ||
+ | ’id’ => 4, | ||
+ | ’name’ => ’Fredddy’, | ||
+ | ’type’ => 220 | ||
+ | ] | ||
+ | 2 => [ | ||
+ | ’id’ => 3, | ||
+ | ’name’ => ’Fredddy’, | ||
+ | ’type’ => 220 | ||
+ | ] | ||
+ | 3 => [ | ||
+ | ’id’ => 1, | ||
+ | ’name’ => ’fred’, | ||
+ | ’type’ => 220 | ||
+ | ] | ||
+ | </pre> | ||
+ | |||
+ | === merge() metódus === | ||
+ | Két tömb összefésülését képes elvégezni. Az összefésülés logikája nyomán hatékonyan tudjuk alkalmazni különböző helyzetekben. A visszatérési érték az összefésült tömb lesz.<br> | ||
+ | |||
+ | <code>'''ArrayHelper::merge($tomb1, $tomb2);'''</code><br> | ||
+ | |||
A lap 2021. augusztus 26., 09:01-kori változata
Tartalomjegyzék
I. ArrayHelper osztály
getValue() metódus
Vizsgálja, hogy egy tömb vagy objektum bizonyos kulcsa létezik-e, ha igen akkor a meghatározott kulcs értékét adja vissza, ha nem létezik akkor pedig egy előre meghatározott értéket ad vissza.
ArrayHelper::getValue($tomb, ’kulcs’, ’Nem található a kulcs’);
A első paraméter a tömb. A második paraméter a kulcs:
- A tömb kulcsa vagy az objektum attribútuma
- Ha több dimenziós a tömbünk akkor pontokkal szeparált kulcsok vagy attribútumok megadásával is megkaphatjuk a kívánt értéket pl., ha [’tömb1’][’tömb2’][’értékKulcsa’] akkor ’tömb1.tömb2.értékKulcsa’
- Callback függvény visszatérése által tudjuk manipulálni a kívánt adatokat
A metódus harmadik paramétere opcionális, ha nem található meg a megadott kulcs a tömbben, akkor ez a harmadik paraméter lesz a metódus visszatérési értéke, alapértelmezetten ez null.
setValue() metódus
Vizsgálja, hogy egy tömb, illetve a megadott kulcs létezik-e, ha létezik akkor annak az értékét felülírja, ha nem létezik akkor pedig létrehozza akár még a tömböt is és a megfelelő kulcsokat és az értéket.
ArrayHelper::setValue($tomb, ’kulcs.ertek3’, ’Ertek’);
Az első paraméter a tömb, a második a kulcs, pontokkal szeparált kulcsok megadásával is megadhatjuk pl., ha [’tömb1’][’tömb2’][’értékKulcsa’] akkor ’tömb1.tömb2.értékKulcsa’. A harmadik paraméter lesz az értéke a megadott kulcsnak.
remove() metódus
Eltávolítja a tömb megadott kulcsát és annak értékét. Visszatérési értékébe az eltávolított elem értéke kerül, ha nem létezik akkor pedig a harmadik paraméterben opcionálisan meghatározott érték fog visszatérni, alapértelmezetten ez a null.
ArrayHelper::remove($tomb, ’kulcs’, ’Nem található a kulcs’);
Fontos megemlíteni, hogy itt nem használható a pont szeparátorral megadott kulcsok meghatározása. Csak az egyszerű string formátumú kulcs engedélyezett. Ez sajnos behatárolja a metódus hatékonyságát / felhasználhatóságát.
index() metódus
Több dimenziós tömb elemeit képes kulcs alapján indexelni, és megadott attribútum szerint csoportba rendezni. Visszatérési értéke az indexelt tömb lesz.
ArrayHelper::index($tomb, ’id’, ’name’);
Első paraméter a tömb, második az egyedi kulcs, mely alapján az egyedi indexelés fog megvalósulni, például id alapján. Harmadik paraméternek azt az attribútumot / attribútumokat várja mely alapján csoportokat fog tudni létrehozni (használhatunk callback függvényt is). Ha a fenti kód alapján id indexelés és name csoportosítás történik egy tömbön akkor:
’Fred’ => [ 1 => [’id’ => 1, ’name’ => ’Fred’, ’type’ => 220] ], ’Fredddy’ => [ 3 => [’id’ => 3, ’name’ => ’Fredddy’ , ’type’ => 30], 4 => [’id’ => 4, ’name’ => ’Fredddy’ , ’type’ => 220], 5 => [’id’ => 5, ’name’ => ’Fredddy’ , ’type’ => 30] ]
Továbbá lehetőségünk van a harmadik paraméterben tömbként átadott értékkel többszörös csoportosításra is, a sorrend a tömbösítés sorrendjét is meghatározza. Ha a harmadik paraméter [’type’, ’name’] akkor:
220 => [ ’Fred’ => [ 1 => [’id’ => 1, ’name’ => ’Fred’, ’type’ => 220] ], ’Fredddy’ => [ 4 => [’id’ => 4, ’name’ => ’Fredddy’ , ’type’ => 220] ] ], 30 => [ ’Fredddy’ => [ 3 => [’id’ => 3, ’name’ => ’Fredddy’ , ’type’ => 30], 5 => [’id’ => 5, ’name’ => ’Fredddy’ , ’type’ => 30] ], ]
map() metódus
A metódus segítségével $kulcs => $érték párokat hozhatunk létre. Lehetőség van továbbá a csoportosításra is. A visszatérési érték az említett párokat tartalmazó asszociatív tömb.
ArrayHelper::map($tomb, ’id’, ’name’, ’type’);
Első paraméter a tömb, másodiknak megkell adnunk azt az attribútumot melyből szeretnénk, hogy a $kulcs legyen ($from), harmadiknak pedig azt az attribútumot melyből szeretnénk, hogy $érték legyen ($to). A negyedik paraméter opcionális, itt adhatjuk meg, hogy végezzen-e csoportosítást és ha igen akkor pedig melyik attribútum alapján. Callback függvények használhatóak. A fent leírt kód alapján a metódus visszatérési értéke így nézne ki:
220 => [ 1 => ’Fred’, 4 => ’Fredddy’ ], 30 => [ 3 => ’Fredddy’, 5 => ’Fredddy’ ]
multisort() metódus
A többdimenziós tömbök sorba rendezésére szolgál. Történhet egy vagy több kulcs alapján is. A rendezés iránya (csökkenő / növekvő sorrend) is megadható. Void metódus nincs visszatérési értéke, a megadott tömbön végzi el a sorba rendezést.
ArrayHelper::multisort($tomb, [’type’, ’id’], [SORT_ASC, SORT_DESC]);
Első paraméter a tömb, ha asszociatív akkor a sorrendezett tömb megtartja a kulcsokat. Második paraméterben kell megadnunk mely attribútumok alapján rendezzen sorba, callback függvény használata lehetséges. Több szempontot is megadhatunk tömb formájában, a sorrend meghatározó. Harmadik paraméterként opcionálisan megadhatjuk a sorba rendezés irányát, alapértelmezetten ez ’SORT_ASC’. Ha az attribútumokat különböző módon szeretnénk sorba rendezni akkor tömböt átadva tehetjük ezt meg. Tehát a fenti példa alapján a ’type’ növekvő sorrendben, az ’id’ csökkenő sorrendben kerül rendezésre. Lehetséges továbbá egy negyedik paraméter is, ez a ’sortFlag’, beállíthatjuk, hogyan kezelje a sorba rendezés értékeit, szövegként vagy számként stb. alapértelmezetten ’SORT_REGULAR’. A sorba rendezett tömb, ’type’ alapján növekvő, majd ’id’ alapján csökkenő sorrendben:
0 => ’id’ => 2, ’name’ => ’Fredddy’, ’type’ => 30 ] 1 => [ ’id’ => 4, ’name’ => ’Fredddy’, ’type’ => 220 ] 2 => [ ’id’ => 3, ’name’ => ’Fredddy’, ’type’ => 220 ] 3 => [ ’id’ => 1, ’name’ => ’fred’, ’type’ => 220 ]
merge() metódus
Két tömb összefésülését képes elvégezni. Az összefésülés logikája nyomán hatékonyan tudjuk alkalmazni különböző helyzetekben. A visszatérési érték az összefésült tömb lesz.
ArrayHelper::merge($tomb1, $tomb2);
Boolean típusú metódusok
keyExists() metódus
Vizsgálja, hogy a meghatározott kulcs létezik-e a megadott tömbben. Visszatérési értéke pedig egy boolean lesz (true – létezik, false – nem létezik).
ArrayHelper::keyExists(’kulcs’, $tomb, false);
Első paraméter a kulcs, második a tömb. A harmadik paraméter opcionális és ezzel a caseSensitive vizsgálatot lehet felfüggeszteni, alapértelmezetten caseSensitive = true, tehát a kis és nagybetűknek is egyeznie kell.
isIndexed() metódus
Vizsgálja, hogy a megadott tömb számokkal van-e indexelve, azt is lehetőségünk van vizsgálni, hogy a számok egymást követőek-e, folytatólagosak. Boolean értéket ad vissza.
ArrayHelper::isIndexed($tomb, true);
Az első paraméter a tömb, a második pedig opcionális és itt megadható, hogy vizsgálja-e a folytatólagosságot, ha true akkor az indexelésnek 0-tól kell kezdődnie és nem lehet kimaradás a számok között. A második paraméter alapértelmezett értéke a false.
isAssociative() metódus
Vizsgálja, hogy a megadott tömb asszociatív-e. Azt is lehetőségünk van vizsgálni, hogy a megadott asszociációs kulcsok mind string formátumúak-e. Boolean értéket ad vissza.
ArrayHelper::isAssociative($tomb, true);
Az első paraméter a tömböt, a második pedig opcionális és itt megadható, hogy kell-e vizsgálni az asszociációs kulcs formátumát, ha true akkor csak szöveg formátumok esetén ad igaz értéket (a ’122’ nem számít szöveg formátumnak a ’12w2’ már igen). A második paraméter alapértelmezett értéke a true.
isIn() metódus
Vizsgálja, hogy egy adott érték benne van-e a tömbben. Visszatérési értéke egy boolean.
ArrayHelper::isIn(’3’, $tomb);
Első paraméter a vizsgálni kívánt értéket várja, a második pedig a tömböt. Van egy harmadik paraméter mely opcionális, ha „true” értéket adunk neki akkor a típus szerinti egyenlőséget is vizsgálja, alapértelmezetten „false” az érték.
isSubset() metódus
Vizsgálja, hogy a megadott elemek megtalálhatóak-e a vizsgálandó tömbben. Visszatérési értéke egy boolean.
ArrayHelper::isSubset([a,c],[a,b,c]);
Az első paraméterben azokat az elemeket kell tömb formájában megadni melyeket szeretnénk, hogy a metódus megkeressen a vizsgálandó tömbben. Fontos, hogy minden elemnek benne kell lennie a vizsgálandó tömbben, csak így ad vissza „true” értéket. A második paraméterben a vizsgálandó tömböt kell megadnunk. A harmadik paraméter opcionális és a típus szerinti összehasonlítást teszi lehetővé, ugyanúgy, mint az előbbi metódus esetében.