cvs: phpdoc /hu/functions array.xml
| From: | Gabor Hojtsy | Date: | Thu, 03 Jan 2002 11:32:50 +0000 |
| Subject: | cvs: phpdoc /hu/functions array.xml | ||
| Groups: | php.doc | ||
| Request: | Send a blank email to phpdoc+get-969340686@lists.php.net to get a copy of this message | ||
goba Thu Jan 3 06:32:50 2002 EDT
Modified files:
/phpdoc/hu/functions array.xml
Log:
Adding new translation sent by pgerzson@php.net, up to date
Index: phpdoc/hu/functions/array.xml diff -u /dev/null phpdoc/hu/functions/array.xml:1.3 --- /dev/null Thu Jan 3 06:32:50 2002 +++ phpdoc/hu/functions/array.xml Thu Jan 3 06:32:50 2002 @@ -0,0 +1,3694 @@ +<?xml version="1.0" encoding="iso-8859-2"?> +<!-- EN-Revision: 1.147 Maintainer: pgerzson Status: ready --> +<!-- CREDITS: zvaranka --> + +<reference id="ref.array"> + <title>Tömbkezelõ függvények</title> + <titleabbrev>Tömbök</titleabbrev> + <partintro> + <simpara> + Ezekkel a függvényekkel különféle módon változtathatod, befolyásolhatod + a tömböket. A tömbök elengedhetetlenek a változók sorozatának + tárolásához, rendezéséhez, igazgatásához és a változtatásához. + </simpara> + <simpara> + Az egy- és többdimenziós tömböket is támogatja, amelyeket + akár "manuálisan" vagy valamilyen függvénnyel is létrehozhatsz. + Vannak bizonyos adatbázis-kezelõ függvények, amelyek adatbázis-lekérdezések + alapján töltenek fel tömböket, és vannak amelyek tömböket adnak vissza. + </simpara> + <para> + Nézd át a <link linkend="language.types.array">Tömbök</link> fejezetet, + ahol részletes leírást találsz a PHP-s tömbök megvalósításáról és mûködésérõl. + </para> + <para> + Lásd még: <function>is_array</function>, <function>explode</function>, + <function>implode</function>, <function>split</function> + és <function>join</function>! + </para> + </partintro> + + <refentry id="function.array"> + <refnamediv> + <refname>array</refname> + <refpurpose> + létrehoz egy tömböt + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>array</function></funcdef> + <paramdef>mixed + <parameter><optional>...</optional></parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Egy paramétertömböt ad vissza. + A paramétereknek megadható az indexük is a =< operátorral. + </para> + <para> + <note> + <para> + Az <function>array</function> nyelvi építõelem tömbök létrehozására, + és nem szokványos függvény. + </para> + </note> + </para> + <para> + Az "index => érték" szintaxis - egymástól vesszõvel elválasztva - + meghatároz egy indexet a hozzátartozó értékkel. Az index lehet sztring + vagy egész szám is. Ha nincs index megadva, akkor egy automatikusan + generált egész szám lesz az elem indexe. (Az automatikus indexelés + 0-tól kezdõdik.) Ha az index egy egész szám, akkor a következõként + generált index az eddigi legnagyobb egész számú indextõl eggyel nagyobb + szám lesz. Figyelj arra, hogyha két azonos indexû elemet definiálsz, + akkor az utolsó felülírja az elsõt. + </para> + <para> + A következõ példák segítenek megérteni, hogyan lehet kétdimenziós tömböket + létrehozni, asszociatív tömbök kulcsait megadni, illetve hogyan lehet + helyeket kihagyni és folytatni numerikus indexelést. + <example> + <title> + <function>array</function> példa + </title> + <programlisting role="php"> +<![CDATA[ +$gyumolcsok = array ( + "gyümölcsök" => array ("a"=>"narancs", "b"=>"banán", "c"=>"alma"), + "számok" => array (1, 2, 3, 4, 5, 6), + "lyukak" => array ("elsõ", 5 => "második", "harmadik") +); +]]> + </programlisting> + </example> + </para> + <para> + <example> + <title>Automatikus indexelés az <function>array</function> "függvénnyel"</title> + <programlisting role="php"> +<![CDATA[ +$array = array( 1, 1, 1, 1, 1, 8=>1, 4=>1, 19, 3=>13); +print_r($array); +]]> + </programlisting> + </example> + ezt fogja kiírni: + <screen role="php"> +<![CDATA[ +Array +( + [0] => 1 + [1] => 1 + [2] => 1 + [3] => 13 + [4] => 1 + [8] => 1 + [9] => 19 +) +]]> + </screen> + Figyeld meg, hogy a 3. indexû elemet kétszer definiáltuk, és a végsõ + értéke a 13. A 4. elemet a 8. után hoztuk létre, és a következõ elemnek + (19-nek) generált index értéke 9, mivel a legnagyobb létezõ index a + tömbben a 8 volt. + </para> + <para> + Ez a példa egy olyan tömböt hoz létre, amelynek az indexelése 1-tõl + kezdõdik. + <example> + <title>1-tõl indexelt tömb létrehozása <function>array</function> "függvénnyel"</title> + <programlisting role="php"> +<![CDATA[ +$elsonegyedev = array(1 => 'Január', 'Február', 'Március'); +print_r($elsonegyedev); +]]> + </programlisting> + </example> + ezt írja ki: + <screen> +<![CDATA[ +Array +( + [1] => 'Január' + [2] => 'Február' + [3] => 'Március' +) +]]> + </screen> + </para> + <para> + Lásd még: <function>array_pad</function>, + <function>list</function> és + <function>range</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.array-change-key-case"> + <refnamediv> + <refname>array_change_key_case</refname> + <refpurpose>visszaad egy kis vagy nagybetûsre cserélt string indexû tömböt </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>array_change_key_case</function></funcdef> + <paramdef>array <parameter>input</parameter></paramdef> + <paramdef>int <parameter><optional>case</optional></parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + A <function>array_change_key_case</function> kis vagy nagybetûsre cseréli + az <parameter>input</parameter> tömb string típusú indexeit + A változtatást az elhagyható <parameter>case</parameter> paraméter + szabályozza, amelynek két állandót lehet átadni: + <constant>CASE_UPPER</constant> és + <constant>CASE_LOWER</constant>, az alapértelmezés a + <constant>CASE_LOWER</constant>. + A numerikus indexet változatlanul hagyja a függvény. + </para> + <example> + <title><function>array_change_key_case</function> példa</title> + <programlisting role="php"> +<![CDATA[ +$bemenet = array("ElSo" => 1, "MasODIk" => 4); +print_r(array_change_key_case($bemenet, CASE_UPPER); +]]> + </programlisting> + <para> + A fenti programrészlet a következõt írja ki: + <screen> +<![CDATA[ +Array +( + [ELSO] => 1 + [MASODIK] => 2 +) +]]> + </screen> + </para> + </example> + </refsect1> + </refentry> + + <refentry id="function.array-chunk"> + <refnamediv> + <refname>array_chunk</refname> + <refpurpose>feldarabolja a tömböt</refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>array_chunk</function></funcdef> + <paramdef>array <parameter>input</parameter></paramdef> + <paramdef>int <parameter>size</parameter></paramdef> + <paramdef>bool <parameter> + <optional>preserve_keys</optional> + </parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + A <function>array_chunk</function> feloszt egy tömböt több tömbre a + <parameter>size</parameter> értéke alapján. + A legutolsó tömbben elképzelhetõ, hogy ennél kevesebb elem szerepel. + A tömböket egy többdimenziós tömb elemeiként adja vissza, amely + 0-tól kezdve numerkius indexelt. + </para> + <para> + A lehetséges <parameter>preserve_keys</parameter> paraméter &true;-ra + állításával, kikényszerítheted, hogy az eredeti tömb indexeit + tartsák meg a visszaadott tömbdarabok. Ha &false;-ra állítod ezt a paramétert, + akkor minden tömbdarabban az elemek sorszámozása 0-tól újra kezdõdik. + Az alapértelmezés az utóbbi: &false;. + </para> + <example> + <title><function>array_chunk</function> példa</title> + <programlisting role="php"> +<![CDATA[ +$input_array = array('a', 'b', 'c', 'd', 'e'); +print_r(array_chunk($input_array, 2)); +print_r(array_chunk($input_array, 2, TRUE)); +]]> + </programlisting> + <para> + A fenti program kimenete: + <screen> +<![CDATA[ +Array +( + [0] => Array + ( + [0] => a + [1] => b + ) + + [1] => Array + ( + [0] => c + [1] => d + ) + + [2] => Array + ( + [0] => e + ) + +) +Array +( + [0] => Array + ( + [0] => a + [1] => b + ) + + [1] => Array + ( + [2] => c + [3] => d + ) + + [2] => Array + ( + [4] => e + ) + +) +]]> + </screen> + </para> + </example> + </refsect1> + </refentry> + + <refentry id="function.array-count-values"> + <refnamediv> + <refname>array_count_values</refname> + <refpurpose>összeszámol minden értéket a tömbben</refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>array_count_values</function></funcdef> + <paramdef>array <parameter>input</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Az <function>array_count_values</function> olyan tömböt ad vissza, + amelynek a kulcsai az <parameter>input</parameter> tömb értékei és az + <parameter>input</parameter> tömbbeli elõfordulási gyakoriságuk a + hozzájuk tartozó értékek. + </para> + <para> + <example> + <title><function>array_count_values</function> példa</title> + <programlisting role="php"> +<![CDATA[ +$tomb = array (1, "hello", 1, "világ", "hello"); +array_count_values ($tomb); // visszaadja array (1=>2, "hello"=>2, "világ"=>1) +]]> +</programlisting> + </example> + </para> + </refsect1> + </refentry> + + <refentry id="function.array-diff"> + <refnamediv> + <refname>array_diff</refname> + <refpurpose>tömbök közti különbséget számolja ki</refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>array_diff</function></funcdef> + <paramdef>array <parameter>array1</parameter></paramdef> + <paramdef>array <parameter>array2</parameter></paramdef> + <paramdef>array + <parameter> + <optional> ...</optional> + </parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + Az <function>array_diff</function> olyan tömböt ad vissza, amely + azokat az elemeket tartalmazza, amit csak <parameter>array1</parameter>-ben + szerepelnek és semelyik másik paraméterként átadott tömbben. + Az indexelést megõrzi. + </para> + <para> + <example> + <title><function>array_diff</function> példa</title> + <programlisting role="php"> +<![CDATA[ +$array1 = array ("a" => "zöld", "vörös", "kék", "vörös"); +$array2 = array ("b" => "zöld", "sárga", "piros"); +$result = array_diff ($array1, $array2); +]]> + </programlisting> + </example> + </para> + <para> + Ez azt eredményezi, hogy a <varname>$result</varname> értéke + <literal>array ("kék");</literal> lesz. Az <varname>$array1</varname> -ben elõforduló + többszörös értékeket ugyanúgy kezeli a függvény. + </para> + <note> + <simpara> + Két elem akkor és csakis akkor tekinthetõ egyenlõnek, ha + <literal>(string) $elem1 === (string) $elem2</literal>, + azaz ha sztring ábrázolásuk megegyezik. + <!-- TODO: example of it... --> + </simpara> + </note> + <warning> + <simpara> + PHP 4.0.4-ben hibásan mûködött! + <!-- TODO: when exactly was this broken?... --> + </simpara> + </warning> + <para> + Lásd még: <function>array_intersect</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.array-filter"> + <refnamediv> + <refname>array_filter</refname> + <refpurpose> + megsszûri a tömb elemeit egy függvény visszahívásával + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>array_filter</function></funcdef> + <paramdef>array <parameter>input</parameter></paramdef> + <paramdef>mixed + <parameter> + <optional>callback</optional> + </parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + Az <function>array_filter</function> olyan tömbbel tér vissza, amely az + <parameter>input</parameter> tömb összes ún. 'callback' függvény által + megszûrt elemét tartalmazza. Ez azt jelenti, hogy a függvény az + <parameter>input</parameter> minden elemére meghívja ezt a függvényt, + amely visszatérési értékeként megadja, hogy az elem átment a szûrõn + vagy sem. Ha az <parameter>input</parameter> tömb asszociatív, akkor a + kulcsok megõrzásre kerülnek. + </para> + <para> + <example> + <title><function>array_filter</function> példa</title> + <programlisting role="php"> +<![CDATA[ +function paratlan($var) { + return ($var % 2 == 1); +} + +function paros($var) { + return ($var % 2 == 0); +} + +$tomb1 = array ("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5); +$tomb2 = array (6, 7, 8, 9, 10, 11, 12); + +$paratlanok = array_filter($tomb1, "paratlan"); +$parosok = array_filter($tomb2, "paros"); +]]> + </programlisting> + </example> + </para> + <para> + Ezután a <varname>$paratlan</varname> tömb így fog kinézni: + <literal>array ("a"=>1, "c"=>3, "e"=>5);</literal>, + a <varname>$paros</varname> pedig így: + <literal>array (6, 8, 10, 12);</literal>, + </para> + ¬e.func-callback; + <para> + Lásd még: <function>array_map</function> és + <function>array_reduce</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.array-flip"> + <refnamediv> + <refname>array_flip</refname> + <refpurpose>felcseréli a tömb elemeit és kulcsait</refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>array_flip</function></funcdef> + <paramdef>array <parameter>trans</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Az <function>array_flip</function> felcseréli a tömb elemeit és kulcsait, + úgyhogy a <parameter>trans</parameter> tömb értékei lesznek az új kulcsok és + a kulcsai pedig a hozzátartozó értékek. + Látható, hogy <type>array</type>-t ad vissza. + </para> + <para> + Figyelj arra, hogy a <parameter>trans</parameter> elemértékeinek + érvényes kulcsoknak kell lenniük, azaz vagy <type>integer</type> vagy + <type>string</type> típusúaknak. Egy figyelmeztetõ "nem fatális" hibaüzenetet + (warning) küld, ha az elemérték típusa nem megfelelõ, + és a kérdéses kulcs - érték pár <emphasis>nem lesz felcserélve</emphasis>. + </para> + <para> + Ha egy érték többször szerepel, akkor a legutolsó kulcsot fogja használni + ahhoz az értékhez, és a többit figyelmen kívül hagyja. + </para> + <para> + Az <function>array_flip</function> &false;-tal tér vissza, sikertelenség esetén. + </para> + <para> + <example> + <title><function>array_flip</function> példa</title> + <programlisting role="php"> +<![CDATA[ +$trans = array_flip ($trans); +$original = strtr ($str, $trans); +]]> + </programlisting> + </example> + </para> + <para> + <example> + <title><function>array_flip</function> példa az (érték)ütközésre</title> + <programlisting role="php"> +<![CDATA[ +$trans = array ("a" => 1, "b" => 1, "c" => 2); +$trans = array_flip ($trans); +// most $trans = array(1 => "b", 2 => "c"); +]]> + </programlisting> + </example> + </para> + </refsect1> + </refentry> + + <refentry id="function.array-fill"> + <refnamediv> + <refname>array_fill</refname> + <refpurpose>feltölt egy tömböt egy megadott értékkel</refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>array_fill</function></funcdef> + <paramdef>int <parameter>start_index</parameter></paramdef> + <paramdef>int <parameter>num</parameter></paramdef> + <paramdef>mixed <parameter>value</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Az <function>array_fill</function> a <parameter>num</parameter> + paraméterben megadott számú elemmel egy tömböt hoz létre, amelyben + minden elem <parameter>value</parameter> értékû és az indexelésük + <parameter>start_index</parameter>-tõl kezdõdik. + </para> + <para> + <example> + <title><function>array_fill</function> példa</title> + <programlisting role="php"> +<![CDATA[ +$a = array_fill(5, 6, 'banán'); + +/* +most $a -ban a következõ elemek vannak: + +$a[5] = "banán"; +$a[6] = "banán"; +$a[7] = "banán"; +$a[8] = "banán"; +$a[9] = "banán"; +$a[10] = "banán"; +*/ +]]> + </programlisting> + </example> + </para> + </refsect1> + </refentry> + + <refentry id="function.array-intersect"> + <refnamediv> + <refname>array_intersect</refname> + <refpurpose>kiszámítja a tömbök metszetét</refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>array_intersect</function></funcdef> + <paramdef>array <parameter>array1</parameter></paramdef> + <paramdef>array <parameter>array2</parameter></paramdef> + <paramdef>array + <parameter> + <optional> ...</optional> + </parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + Az <function>array_intersect</function> olyan tömböt ad vissza, amely + az <parameter>array1</parameter> azon elemeit tartalmazza, amelyek + minden paraméterként átadott tömbben megtalálhatók. + Az indexelést megõrzi. + </para> + <para> + <example> + <title><function>array_intersect</function> példa</title> + <programlisting role="php"> +<![CDATA[ +$array1 = array ("a" => "zöld", "vörös", "kék", "vörös"); +$array2 = array ("b" => "zöld", "sárga", "piros"); +$result = array_intersect ($array1, $array2); +]]> + </programlisting> + </example> + </para> + <para> + Ez a <varname>$result</varname> tömbben az <literal>array ("a" + => "zöld", "piros");</literal> értéket eredményezi. + </para> + <note> + <simpara> + Két elem akkor és csakis akkor tekinthetõ egyenlõnek, ha + <literal>(string) $elem1 === (string) $elem2</literal>, + azaz ha sztring ábrázolásuk megegyezik. + <!-- TODO: example of it... --> + </simpara> + </note> + <warning> + <simpara> + PHP 4.0.4-ben hibásan mûködött! + <!-- TODO: when exactly was this broken?... --> + </simpara> + </warning> + <para> + Lásd még: <function>array_diff</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.array-key-exists"> + <refnamediv> + <refname>array_key_exists</refname> + <refpurpose>ellenõrzi a keresett index/kulcs létezését a tömbben</refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>bool <function>array_key_exists</function></funcdef> + <paramdef>mixed <parameter>key</parameter></paramdef> + <paramdef>array <parameter>search</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Az <function>array_key_exists</function> &true;-val tér vissza, ha + az adott <parameter>key</parameter> be van állítva a + <parameter>search</parameter> tömbben. A <parameter>key</parameter> bármilyen + lehetséges tömbindex érték lehet. + </para> + <para> + <example> + <title><function>array_key_exists</function> példa</title> + <programlisting role="php"> +<![CDATA[ +$keress = array("elsõ" => 1, "második" => 4); +if ( array_key_exists("elsõ", $keress) ) { + echo "Az 'elsõ' indexû elem a tömbben van."; +} +]]> + </programlisting> + </example> + </para> + <note> + <simpara> + A PHP 4.0.6-ban a függvény neve <function>key_exists</function> volt. + </simpara> + </note> + <para> + Lásd még: <function>isset</function>! + </para> + </refsect1> + + </refentry> + <refentry id="function.array-keys"> + <refnamediv> + <refname>array_keys</refname> + <refpurpose>visszaadja egy tömb összes indexét</refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>array_keys</function></funcdef> + <paramdef>array <parameter>input</parameter></paramdef> + <paramdef>mixed + <parameter> + <optional>search_value</optional> + </parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + Az <function>array_keys</function> az <parameter>input</parameter> tömb + összes - numerikus és sztring - típusú indexét (kulcsát) adja vissza. + </para> + <para> + Ha az elhagyható <parameter>search_value</parameter> is meg an adva, + akkor csak azokat a kulcsokkal tér vissza, amelyek a megadott értékhez + tartoznak. Egyébként az <parameter>input</parameter> összes kulcsa + átadásra kerül. + </para> + <para> + <example> + <title><function>array_keys</function> példa</title> + <programlisting role="php"> +<![CDATA[ +$tomb = array (0 => 100, "szin" => "piros"); +array_keys ($tomb); // visszatérési érték: array (0, "szin") + +$tomb = array ("kék", "piros", "zöld", "kék", "kék"); +array_keys ($tomb, "kék"); // visszatérési érték: array (0, 3, 4) + +$tomb = array ("szín" => array("kék", "piros", "zöld"), "méret" => array("kicsi", "közepes", "nagy")); +array_keys ($tomb); // visszatérési érték: array ("color", "size") +]]> + </programlisting> + </example> + </para> + <note> + <para> + Ez a függvény PHP 4-tõl használható, alább látható egy megvalósítása azok számára, + akik még mindig PHP 3-t használnak. + <example> + <title><function>array_keys</function> megvalósítása PHP 3-ban</title> + <programlisting role="php"> +<![CDATA[ +function array_keys ($arr, $term="") { + $t = array(); + while ( list($k,$v) = each($arr) ) { + if ( $term && $v != $term ) { + continue; + } + $t[] = $k; + } + return $t; +} +]]> + </programlisting> + </example> + </para> + </note> + <para> + Lásd még: <function>array_values</function>! + </para> + </refsect1> + + </refentry> + <refentry id="function.array-map"> + <refnamediv> + <refname>array_map</refname> + <refpurpose> + egy függvényt alkalmaz minden megadott tömb elemére + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>array_map</function></funcdef> + <paramdef>mixed <parameter>callback</parameter></paramdef> + <paramdef>array <parameter>arr1</parameter></paramdef> + <paramdef>array + <parameter> + <optional>arr2...</optional> + </parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + Az <function>array_map</function> olyan tömböt ad vissza, amelyben + az <parameter>arr1</parameter> tömb <parameter>callback</parameter> nevû függvény + által kiszámolt értékei vannak. A <parameter>callback</parameter> függvény + fogadható paraméterek száma meg kell egyezzen az + <function>array_map</function>-nak átadott tömbök számával. + </para> + <para> + <example> + <title><function>array_map</function> példa</title> + <programlisting role="php"> +<![CDATA[ +function kob($n) { + return $n*$n*$n; +} + +$a = array(1, 2, 3, 4, 5); +$b = array_map("kob", $a); +]]> + </programlisting> + </example> + </para> + <para> + Így a <varname>$b</varname> tömb értéke + <literal>array (1, 8, 27, 64, 125);</literal> lesz. + </para> + <para> + <example> + <title><function>array_map</function> - több tömb használata</title> + <programlisting role="php"> +<![CDATA[ +function ird_spanyolul($n, $m) { + return "A(z) $n spanyolul: $m "; +} + +function osszerendel_spanyolul($n, $m) { + return array ($n => $m); +} + +$a = array(1, 2, 3, 4, 5); +$b = array("uno", "dos", "tres", "cuatro", "cinco"); + +$c = array_map("ird_spanyolul", $a, $b); + +print_r($c); + +// kiírja, hogy: +// Array +// ( +// [0] => A(z) 1 spanyolul: uno +// [1] => A(z) 2 spanyolul: dos +// [2] => A(z) 3 spanyolul: tres +// [3] => A(z) 4 spanyolul: cuatro +// [4] => A(z) 5 spanyolul: cinco +// ) + +$d = array_map("osszerendel_spanyolul", $a , $b); + +print_r($d); + +// kiírja, hogy: +// Array +// ( +// [0] => Array +// ( +// [1] => uno +// ) +// +// [1] => Array +// ( +// [2] => dos +// ) +// +// [2] => Array +// ( +// [3] => tres +// ) +// +// [3] => Array +// ( +// [4] => cuatro +// ) +// +// [4] => Array +// ( +// [5] => cinco +// ) +// +// ) +]]> + </programlisting> + </example> + </para> + <para> + Több tömb használata esetén a tömbök hosszának meg kell egyeznie, + mert a meghívott <parameter>callback</parameter> függvény + párhuzomsan halad végig rajtuk mindig a megfelelõ elemeket használva fel. + Ha a tömbök nem megegyezõ méretûek, akkor a legrövidebb üres elemekkel + lesznek feltöltve. + </para> + <para> + Ennek a függvénynek érdekes felhasználási módja, hogy tömböket tartalmazó + tömböt lehet vele létrehozni, ha a <parameter>callback</parameter> + függvényként a &null; értéket adjuk át. + </para> + <para> + <example> + <title>tömböket tartalmazó tömb létrehozása</title> + <programlisting role="php"> +<![CDATA[ +$a = array(1, 2, 3, 4, 5); +$b = array("egy", "kettõ", "három", "négy", "öt"); +$c = array("uno", "dos", "tres", "cuatro", "cinco"); + +$d = array_map(null, $a, $b, $c); +print_r($d); + +// kiírja, hogy: +// Array +// ( +// [0] => Array +// ( +// [0] => 1 +// [1] => egy +// [2] => uno +// ) +// +// [1] => Array +// ( +// [0] => 2 +// [1] => kettõ +// [2] => dos +// ) +// +// [2] => Array +// ( +// [0] => 3 +// [1] => három +// [2] => tres +// ) +// +// [3] => Array +// ( +// [0] => 4 +// [1] => négy +// [2] => cuatro +// ) +// +// [4] => Array +// ( +// [0] => 5 +// [1] => öt +// [2] => cinco +// ) +// +// ) +]]> + </programlisting> + </example> + </para> + <para> + Lásd még: <function>array_filter</function> és + <function>array_reduce</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.array-merge"> + <refnamediv> + <refname>array_merge</refname> + <refpurpose> egyesít két vagy több tömböt</refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>array_merge</function></funcdef> + <paramdef>array <parameter>array1</parameter></paramdef> + <paramdef>array <parameter>array2</parameter></paramdef> + <paramdef>array + <parameter> + <optional>...</optional> + </parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + Az <function>array_merge</function> egyesíti két vagy több tömb elemeit + úgy, hogy a második tömb elemeit hozzáfûzi az elsõéhez, és visszadja az + eredményül kapott tömböt. + </para> + <para> + Ha a megadott tömbökben ugyanolyan string kulcsok vannak, akkor a késõbbi + felülírja az elõzõt. Ha a tömböknek ugyanolyan numerikus indexei vannak, + akkor nem ez történik, minden új értéket a tömbbe illeszt. + </para> + <para> + <example> + <title><function>array_merge</function> példa</title> + <programlisting role="php"> +<![CDATA[ +$tomb1 = array ("szín" => "piros", 2, 4); +$tomb2 = array ("a", "b", "szín" => "zöld", "alak" => "trapéz", 4); +$eredmeny = array_merge ($tomb1, $tomb2); +]]> + </programlisting> + </example> + </para> + <para> + Az eredményül kapott tömb az <literal>array("szín" => "zöld", 2, 4, + "a", "b", "alak" => "trapézd", 4)</literal> lesz. + </para> + <para> + Lásd még: <function>array_merge_recursive</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.array-merge-recursive"> + <refnamediv> + <refname>array_merge_recursive</refname> + <refpurpose>rekurzívan egyesít két vagy több tömböt</refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>array_merge_recursive</function></funcdef> + <paramdef>array <parameter>array1</parameter></paramdef> + <paramdef>array <parameter>array2</parameter></paramdef> + <paramdef>array + <parameter> + <optional>...</optional> + </parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + Az <function>array_merge_recursive</function> egyesíti két vagy több tömb + elemeit úgy, hogy az egyik elemeit a másik után fûzi, és visszadja az + eredményül kapott tömböt. + </para> + <para> + Ha a megadott tömbökben ugyanolyan string kulcsok vannak, akkor az ezekhez + tartozó elemértékeket egy tömbbe gyûjti össze. Ezt rekurzívan teszi a függvény, + tehát ha az elemek egyike ugyancsak tömb, akkor ennek a tömbnek az elemeire + is hasonlóképp lefut az egyesítõ algoritmus. + Ha viszont a numerikus indexek egyeznek meg, akkor a késõbbi nem felülírja a + korábbi értéket, hanem azok után fûzi. + </para> + <para> + <example> + <title><function>array_merge_recursive</function> példa</title> + <programlisting role="php"> +<![CDATA[ +$tomb1 = array ("szín" => array ("kedvenc" => "piros"), 5); +$tomb2 = array (10, "szín" => array ("kedvenc" => "zöld", "kék")); +$result = array_merge_recursive ($tomb1, $tomb2); +]]> + </programlisting> + </example> + </para> + <para> + Az eredményül kapott tömb : <literal>array ("szín" => array + ("kedvenc" => array ("piros", "zöld"), "kék"), 5, 10)</literal>. + </para> + <para> + Lásd még: <function>array_merge</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.array-multisort"> + <refnamediv> + <refname>array_multisort</refname> + <refpurpose> + egyszerre több tömböt vagy egy többdimenziós tömböt rendez + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>bool <function>array_multisort</function></funcdef> + <paramdef>array <parameter>ar1</parameter></paramdef> + <paramdef>mixed + <parameter><optional>arg</optional></parameter> + </paramdef> + <paramdef>mixed + <parameter><optional>...</optional></parameter> + </paramdef> + <paramdef>array + <parameter><optional>...</optional></parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + Az <function>array_multisort</function> arra hasunálható, hogy egyszerre + több tömböt vagy egy többdimenzós tömböt rendezzen sorba valamelyik + dimenziója szerint. A kulcsokat megõrzi a rendezés során. + </para> + <para> + A megadott tömböket egy képzeletbeli, sorok alapján rendezendõ táblázat + oszlopainak tekinthetõk. Ez hasonlít az SQL ORDER BY cikkelyének feladatára. + Ez elsõ tömb, ami alapján elõször. Az ebben a tömbben levõ ugyanolyan sorok (elemek) + a következõként megadott tömb szerint lesznek tovább rendezve, és így tovább + végig a tömbökön. + </para> + <para> + Ennek a függvénynek a argumentumlistája kicsit szokatlan, de nagyon rugalmas. + A legelsõ paraméternek egy tömbnel kell lennie, ezután minden paraméter lehet + egy tömb vagy egy a következõ rendezést szabályzó jelzõértékek közül. + </para> + <para> + Sorrendi jelzõk: + <itemizedlist> + <listitem> + <simpara>SORT_ASC - növekvõ sorrendbe rendez</simpara> + </listitem> + <listitem> + <simpara>SORT_DESC - csökkenõ sorrendbe rendez</simpara> + </listitem> + </itemizedlist> + </para> + <para> + Rendezési jelzõk: + <itemizedlist> + <listitem> + <simpara>SORT_REGULAR - megszokott módon hasonlítja össze az elemeket</simpara> + </listitem> + <listitem> + <simpara>SORT_NUMERIC - számként hasonlítja össze az elemeket</simpara> + </listitem> + <listitem> + <simpara>SORT_STRING - szövegként hasonlítja össze az elemeket</simpara> + </listitem> + </itemizedlist> + </para> + <para> + Nem lehet két ugyanolyan típusú jelzõt egymás után megadni. Ezek a jelzõk csak a + közvetlenül elõtük megadott tömb szerinti rendezést befolyásolják, minden tömb + paraméternél az alapértelmezés lép életbe, ami a SORT_ASC és SORT_REGULAR. + </para> + <para> + &true;-val tér vissza, ha sikerült a rendezés, egyébként &false;-szal. + </para> + <para> + <example> + <title>Több tömb alapján történõ rendezés</title> + <programlisting role="php"> +<![CDATA[ +$ar1 = array ("10", 100, 100, "a"); +$ar2 = array (1, 3, "2", 1); +array_multisort ($ar1, $ar2); +]]> + </programlisting> + </example> + </para> + <para> + Ebben a példában a rendezés után az elsõ tömbben 10,"a", 100, 100 lesz + A másodikban 1, 1, "2", 3. A második tömb elemei az elsõ tömb megegyezõ + elemeinek megfelelõen (100, 100) szintén rendezettek. + </para> + <para> + <example> + <title>Többdimenziós tömbök rendezése</title> + <programlisting role="php"> +<![CDATA[ +$ar = array (array ("10", 100, 100, "a"), array (1, 3, "2", 1)); +array_multisort ($ar[0], SORT_ASC, SORT_STRING, + $ar[1], SORT_NUMERIC, SORT_DESC); +]]> + </programlisting> + </example> + </para> + <para> + Ebben a példában a rendezés után az elsõ tömbben 10, 100, 100, "a" lesz + - szövegként növekvõ sorrendbe rendezve. A másodikban 1, 1, 3, "2" - számként + csökkenõ sorrendbe rendezve. + </para> + </refsect1> + </refentry> + + <refentry id="function.array-pad"> + <refnamediv> + <refname>array_pad</refname> + <refpurpose> + adott méretûre bõvít és tölt fel egy tömböt + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>array_pad</function></funcdef> + <paramdef>array <parameter>input</parameter></paramdef> + <paramdef>int <parameter>pad_size</parameter></paramdef> + <paramdef>mixed <parameter>pad_value</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Az <function>array_pad</function> az <parameter>input</parameter> tömb + <parameter>pad_size</parameter>paraméterben megadott méretre bõvített másolatát + adja vissza, amelyben az új elemeket a <parameter>pad_value</parameter> értékkel töltötte fel. + Ha a <parameter>pad_size</parameter> pozitív szám, akkor a tömb végére kerülnek az új elemek, + ha negatív, akkor az elejére. Ha a <parameter>pad_size</parameter> abszolút értéke kisebb vagy + egyenlõ a tömb méretével, akkor az <parameter>input</parameter> tömbön nem történik változtatás. + </para> + <para> + <example> + <title> + <function>array_pad</function> példa</title> + <programlisting role="php"> +<![CDATA[ +$input = array (12, 10, 9); + +$result = array_pad ($input, 5, 0); +// array (12, 10, 9, 0, 0) + +$result = array_pad ($input, -7, -1); +// array (-1, -1, -1, -1, 12, 10, 9) + +$result = array_pad ($input, 2, "noop"); +// nincs kitöltés +]]> + </programlisting> + </example> + </para> + </refsect1> + </refentry> + + <refentry id="function.array-pop"> + <refnamediv> + <refname>array_pop</refname> + <refpurpose>kivesz egy elemet a tömb végérõl</refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>mixed <function>array_pop</function></funcdef> + <paramdef>array <parameter>array</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Az <function>array_pop</function> kiveszi az <parameter>array</parameter> + tömbbõl annak utolsó elemét, és ezt adja vissza. + Ha az <parameter>array</parameter> tömb üres vagy nem tömb, akkor + &null;-lal tér vissza. + </para> + <para> + <example> + <title><function>array_pop</function> példa</title> + <programlisting role="php"> +<![CDATA[ +$verem = array ("narancs", "alma", "málna"); +$gyumolcs = array_pop ($verem); +]]> + </programlisting> + </example> + </para> + <para> + Ezután a <varname>$verem</varname>-nek csak két eleme lesz: + "narancs" és "alma", és a <varname>$gyumolcs</varname> változó értéke + "málna" lesz. + </para> + &return.falseproblem; + <para> + Lásd még: <function>array_push</function>, + <function>array_shift</function> és + <function>array_unshift</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.array-push"> + <refnamediv> + <refname>array_push</refname> + <refpurpose> + egy vagy több elemet illeszt a tömb végére + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>int <function>array_push</function></funcdef> + <paramdef>array <parameter>array</parameter></paramdef> + <paramdef>mixed <parameter>var</parameter></paramdef> + <paramdef>mixed + <parameter><optional>...</optional></parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + Az <function>array_push</function> az <parameter>array</parameter> tömböt + veremként kezeli, és annak a tetejére - a tömb végére - teszi a + paraméterként megadott értékeket. Az <parameter>array</parameter> tömb + mérete a hozzáfûzött elemek számával fog nõni. Ennek ugyanaz a hatása, + mintha a : + <programlisting role="php"> +<![CDATA[ +$array[] = $var; +]]> + </programlisting> + kódot ismételnéd meg mindenegyes <parameter>var</parameter> paraméterre. + </para> + <para> + A tömbbeli elemek új számával tér vissza. + </para> + <para> + <example> + <title><function>array_push</function> példa</title> + <programlisting role="php"> +<![CDATA[ +$verem = array (1, 2); +array_push ($verem, "+", 3); +]]> + </programlisting> + </example> + </para> + <para> + E példában a <varname>$verem</varname> tömbnek 4 eleme lesz: + 1, 2, "+" és 3. + </para> + <para> + Lásd még: <function>array_pop</function>, + <function>array_shift</function> és + <function>array_unshift</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.array-rand"> + <refnamediv> + <refname>array_rand</refname> + <refpurpose> + véletlenszerûen egy vagy több elemet hoz elõ a tömbbõl + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>mixed <function>array_rand</function></funcdef> + <paramdef>array <parameter>input</parameter></paramdef> + <paramdef>int + <parameter><optional>num_req</optional></parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + Az <function>array_rand</function> különösen akkor hasznos, ha egy vagy + több tömbbeli elemet kell véletlenszerûen kiválasztani. A függvény az + <parameter>input</parameter> tömbbõl az elhagyható + <parameter>num_req</parameter> paraméterben megadott számú elemet + választja ki és adja vissza. A kívánt elemek száma alapértelmezás szerint + 1. + </para> + <para> + Ha csak egy elemet választ ki, akkor az <function>array_rand</function> + ennek az elemnek az indexével tér vissza. Több elem esetén ezeknek az + indexeibõl alkotott tömbbel. Ezzel a megoldással kulcsokat és + elemértékeket is véletlenszerûen ki lehet választani egy tömbbõl. + </para> + <para> + Az <function>srand</function> függvényt meg kell hívni, hogy + inicializálja a véletlenszám-generátort. + </para> + <para> + <example> + <title><function>array_rand</function> példa</title> + <programlisting role="php"> +<![CDATA[ +srand ((float) microtime() * 10000000); +$input = array ("Neo", "Morpheus", "Trinity", "Cypher", "Tank"); +$rand_keys = array_rand ($input, 2); +print $input[$rand_keys[0]]."\n"; +print $input[$rand_keys[1]]."\n"; +]]> + </programlisting> + </example> + </para> + </refsect1> + </refentry> + + <refentry id="function.array-reverse"> + <refnamediv> + <refname>array_reverse</refname> + <refpurpose> + tömb fordított sorrendû elemeivel tér vissza + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>array_reverse</function></funcdef> + <paramdef>array <parameter>array</parameter></paramdef> + <paramdef>bool <parameter><optional>preserve_keys</optional></parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Az <function>array_reverse</function> veszi az <parameter>array</parameter> + tömböt, és visszaad egy olyan tömböt,amelyben elemek fordított sorrendben + szerepelnek. Ha <parameter>preserve_keys</parameter> értéke &true;, akkor + megõrzi az elemek indexelését a visszaadandó tömbben. + </para> + <para> + <example> + <title><function>array_reverse</function> példa</title> + <programlisting role="php"> +<![CDATA[ +$bemenet = array ("php", 4.0, array ("zöld", "piros")); +$eredmeny = array_reverse ($bemenet); +$indexelt_eredmeny = array_reverse ($bemenet, TRUE); +]]> + </programlisting> + </example> + </para> + <para> + Ezután mind <varname>$eredmeny</varname> és a + <varname>$indexelt_bemenet</varname> tömb így néz ki: + <literal>array(array ("zöld", "piros"), 4.0, "php")</literal>, ám + a <literal>"php"</literal> megmaradt az + <varname>$indexelt_bemenet[0]</varname> elemnek. + </para> + <note> + <para> + A második paraméter PHP 4.0.3-tõl használható. + </para> + </note> + </refsect1> + </refentry> + + <refentry id="function.array-reduce"> + <refnamediv> + <refname>array_reduce</refname> + <refpurpose> + elemi értékre csökkenti a tömböt tetszõleges függvény meghívásával + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>mixed <function>array_reduce</function></funcdef> + <paramdef>array <parameter>input</parameter></paramdef> + <paramdef>mixed <parameter>callback</parameter></paramdef> + <paramdef>int + <parameter><optional>initial</optional></parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + Az <function>array_reduce</function> ismétlõdve meghívja a + <parameter>callback</parameter> függvényt + az <parameter>input</parameter> tömb elemeivel paraméterként, azért hogy + végül egy elemi értékké alakítsa át a tömböt. Az elhagyható + <parameter>intial</parameter> megadásával beállítható egy tetszõleges + kezdõ érték a folyamat legelején. Ha üres a tömb, akkor ez lesz a + visszadott érték is. + </para> + <para> + <example> + <title><function>array_reduce</function> példa</title> + <programlisting role="php"> +<![CDATA[ +function rsum($v, $w) { + $v += $w; + return $v; +} + +function rmul($v, $w) { + $v *= $w; + return $v; +} + +$a = array(1, 2, 3, 4, 5); +$x = array(); +$b = array_reduce($a, "rsum"); +$c = array_reduce($a, "rmul", 10); +$d = array_reduce($x, "rsum", 1); +]]> + </programlisting> + </example> + </para> + <para> + Ennek eredménye: + <varname>$b</varname> = <literal>15</literal>, + <varname>$c</varname> = <literal>1200</literal> (= 1*2*3*4*5*10) és + <varname>$d</varname> = <literal>1</literal>. + </para> + <para> + Lásd még: <function>array_filter</function> és + <function>array_map</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.array-shift"> + <refnamediv> + <refname>array_shift</refname> + <refpurpose> + kivesz egy elemet a tömb elejérõl + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>mixed <function>array_shift</function></funcdef> + <paramdef>array <parameter>array</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Az <function>array_shift</function> kilépteti a tömb elsõ elemét + <parameter>array</parameter>, és ezt adja vissza. Az + <parameter>array</parameter> tömb eggyel kevesebb elemet fog tartalmazni, + és minden eleme eggyel elõrébb (elsõ index felé) tolódik. + Ha a tömb üres volt, akkor &null;-lal tér vissza. + </para> + <para> + <example> + <title><function>array_shift</function> példa</title> + <programlisting role="php"> +<![CDATA[ +$args = array ("-v", "-f"); +$opt = array_shift ($args); +]]> + </programlisting> + </example> + </para> + <para> + Ez azt eredményezi, hogy <varname>$args</varname> egy eleme marad: + "-f", és a <varname>$opt</varname> értéke "-v" lesz. + </para> + <para> + Lásd még: <function>array_unshift</function>, + <function>array_push</function> és + <function>array_pop</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.array-slice"> + <refnamediv> + <refname>array_slice</refname> + <refpurpose>Extract a slice of the array</refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>array_slice</function></funcdef> + <paramdef>array <parameter>array</parameter></paramdef> + <paramdef>int <parameter>offset</parameter></paramdef> + <paramdef>int + <parameter><optional>length</optional></parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + Az <function>array_slice</function> függvény az + <parameter>array</parameter> tömb <parameter>offset</parameter> és + <parameter>length</parameter> paraméterek által meghatározott + elemsorozatával tér vissza. + </para> + <para> + Pozitív <parameter>offset</parameter> esetén, az elemsorozat + ennyiedik sorszámú elemtõl kezdõdik, negatív <parameter>offset</parameter> + esetén az <parameter>array</parameter> tömb végétõl visszafelé számolva + ennyiedik elemtõl kezdõdik. + </para> + <para> + Ha a <parameter>length</parameter> meg van adva és pozitív, akkor az + elemsorozatba ennyi darab elem kerül bele. Negatív + <parameter>length</parameter> esetén az elemsorozat az + <parameter>array</parameter> tömb vége elõtt ennyi darab elemmel "áll + meg", amely azt jelenti, hogy az ezután következõ elemek nem kerülnek bele + a sorozatba. Ha nincs megadva a <parameter>length</parameter>, akkor + az <parameter>offset</parameter> által meghatározott ponttól + kezdve a tömb végéig minden elem belekerül a sorozatba. + </para> + <para> + <example> + <title><function>array_slice</function> példák</title> + <programlisting role="php"> +<![CDATA[ +$input = array ("a", "b", "c", "d", "e"); + // visszatérési értékek +$output = array_slice ($input, 2); // "c", "d", "e" +$output = array_slice ($input, 2, -1); // "c", "d" +$output = array_slice ($input, -2, 1); // "d" +$output = array_slice ($input, 0, 3); // "a", "b", "c" +]]> + </programlisting> + </example> + </para> + <para> + Lásd még: <function>array_splice</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.array-splice"> + <refnamediv> + <refname>array_splice</refname> + <refpurpose> + lecseréli a tömb egy részét + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>array_splice</function></funcdef> + <paramdef>array <parameter>input</parameter></paramdef> + <paramdef>int <parameter>offset</parameter></paramdef> + <paramdef>int <parameter><optional>length</optional></parameter></paramdef> + <paramdef>array <parameter><optional>replacement</optional></parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Az <function>array_splice</function> eltávolítja az + <parameter>input</parameter> tömb <parameter>offset</parameter> é + <parameter>length</parameter> paraméterek által meghatározott + sorozatát, és helyébe - ha meg van adva - a + <parameter>replacement</parameter> tömböt illeszti. + </para> + <para> + Pozitív <parameter>offset</parameter> esetén, a törlendõ elemsorozat + ennyiedik sorszámú elemtõl kezdõdik, negatív <parameter>offset</parameter> + esetén az <parameter>array</parameter> tömb végétõl visszafelé számolva + ennyiedik elemtõl kezdõdik. + </para> + <para> + Ha nincs megadva a <parameter>length</parameter>, akkor az + <parameter>offset</parameter> által meghatározott ponttól kezdve a tömb + végéig minden elemet eltávolít. Ha a <parameter>length</parameter> meg + van adva és pozitív, akkor ennyi darab elem kerül törlésre. Negatív + <parameter>length</parameter> esetén az <parameter>array</parameter> tömb + végétõl visszafelé ennyi darab elem kerül törlésre. Jótanácsként: + ha a tömb végéig kell mindent lecserélni a + <parameter>replacement</parameter> megadottra, akkor a + <literal>count($input)</literal>-ot kell a <parameter>length</parameter> + paraméterben megadni. + </para> + <para> + Ha a <parameter>replacement</parameter> tömb is meg van adva, akkor + a törölt elemek helyére ennek a tömbnek az elemei kerülnek. + Ha <parameter>offset</parameter> és <parameter>length</parameter> alapján + nem történt törlés, akkor a <parameter>replacement</parameter> elemei + az <parameter>offset</parameter> által mutatott helyre kerülnek + beillesztésre. Jótanácsként: ha a <parameter>replacement</parameter> + egyelemû, akkor nem szükséges <literal>array()</literal>-t használni, + kivéve ha ez az egy elem maga is tömb kell legyen. + </para> + <para> + A következõk egyenértékûek: + <programlisting role="php"> +<![CDATA[ +array_push ($bemenet, $x, $y) array_splice ($bemenet, count ($bemenet), 0, array ($x, $y)) +array_pop ($bemenet) array_splice ($bemenet, -1) +array_shift ($bemenet) array_splice ($bemenet, 0, 1) +array_unshift ($bemenet, $x, $y) array_splice ($bemenet, 0, 0, array ($x, $y)) +$a[$x] = $y array_splice ($bemenet, $x, 1, $y) +]]> + </programlisting> + </para> + <para> + A törölt elemek tömbjével tér vissza a függvény. + </para> + <para> + <example> + <title><function>array_splice</function> példák</title> + <programlisting role="php"> +<![CDATA[ +$bemenet = array ("piros", "zöld", "kék", "sárga"); +array_splice ($bemenet, 2); +// $bemenet most: array ("piros", "zöld") + +$bemenet = array ("piros", "zöld", "kék", "sárga"); +array_splice ($bemenet, 1, -1); +// $bemenet most: array ("piros", "sárga") + +$bemenet = array ("piros", "zöld", "kék", "sárga"); +array_splice ($bemenet, 1, count($bemenet), "narancs"); +// $bemenet most: array ("piros", "narancs") + +$bemenet = array ("piros", "zöld", "kék", "sárga"); +array_splice ($bemenet, -1, 1, array("fekete", "gesztenye")); +// $bemenet most: array ("piros", "zöld", "kék", "fekete", "gesztenye") +]]> + </programlisting> + </example> + </para> + <para> + Lásd még: <function>array_slice</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.array-sum"> + <refnamediv> + <refname>array_sum</refname> + <refpurpose> + tömbbeli elemek összegét számolja ki + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>mixed <function>array_sum</function></funcdef> + <paramdef>array <parameter>array</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Az <function>array_sum</function> az <parameter>array</parameter> + tömb elemeinek <type>integer</type> vagy <type>float</type> + típusú értékével tér vissza. + </para> + <para> + <example> + <title><function>array_sum</function> példák</title> + <programlisting role="php"> +<![CDATA[ +$a = array(2, 4, 6, 8); +echo "összeg(a) = ".array_sum($a)."\n"; +// kiírja, hogy: összeg(a) = 20 + +$b = array("a"=>1.2,"b"=>2.3,"c"=>3.4); +echo "összeg(b) = ".array_sum($b)."\n"; +// kiírja, hogy: összeg(b) = 6.9 +]]> + </programlisting> + </example> + </para> + <note> + <para> + A 4.0.6 verziót megelõzõen a PHP módosította a paraméterként + átadott tömböt, a sztringeket számmá konvertálta, ami majdnem + mindig 0-val volt egyenlõ. + </para> + </note> + </refsect1> + </refentry> + + <refentry id="function.array-unique"> + <refnamediv> + <refname>array_unique</refname> + <refpurpose>törli az ismétlõdõ elemeket</refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>array_unique</function></funcdef> + <paramdef>array <parameter>array</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Az <function>array_unique</function> a bemenetként kapott + <parameter>array</parameter> tömbbõl minden értéket egyszer vesz, + és az így keletkezett tömbbel tér vissza. + </para> + <para> + Az indexelést megtartja. Az <function>array_unique</function> minden érték + esetén az elsõként megtalált elem indexét tartja meg, a többi ezután + következõt eldobja. [Ez a kijelentés csak az angol kézikönyv fordítása! + Az alábbi példákat MINDENKÉPPEN próbáld ki, és akkor fogod látni, hogy + valójában hogyan mûködik azzal a PHP verzióval, ami Neked van. + A hibát már bejelentettük, javítása folyamatban van...] + </para> + <note> + <simpara> + Két elem akkor és csakis akkor tekinthetõ egyenlõnek, ha + <literal>(string) $elem1 === (string) $elem2</literal>, + azaz ha sztring ábrázolásuk megegyezik. + <!-- TODO: example of it... --> + </simpara> + </note> + <warning> + <simpara> + PHP 4.0.4-ben hibásan mûködött. + <!-- TODO: when exactly was this broken?... --> + </simpara> + </warning> + <para> + <example> + <title> + <function>array_unique</function> példa</title> + <programlisting role="php"> +<![CDATA[ +$bemenet = array ("a" => "zöld", "piros", "b" => "zöld", "kék", "piros"); +$eredmeny = array_unique ($bemenet); +print_r($eredmeny); +/* a következõt írja ki: +Array +( + [b] => zöld + [1] => kék + [2] => piros +) +*/ +]]> + </programlisting> + </example> + </para> + <para> + <example> + <title><function>array_unique</function> és a típusok kapcsolata</title> + <programlisting role="php"> +<![CDATA[ +$bemenet = array (4,"4","3",4,3,"3"); +$eredmeny = array_unique ($bemenet); +var_dump($eredmeny); + +/* a következõt írja ki: (PHP 4.0.6) +array(2) { + [3]=> + int(4) + [4]=> + int(3) +} +*/ +]]> + </programlisting> + </example> + </para> + </refsect1> + </refentry> + + <refentry id="function.array-unshift"> + <refnamediv> + <refname>array_unshift</refname> + <refpurpose> + beszúr a tömb elejére egy vagy több elemet + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>int <function>array_unshift</function></funcdef> + <paramdef>array <parameter>array</parameter></paramdef> + <paramdef>mixed <parameter>var</parameter></paramdef> + <paramdef>mixed <parameter><optional>...</optional></parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Az <function>array_unshift</function> az <parameter>array</parameter> + tömb után megadott elemeket a tömb elejébe beszúrja. A beszúrandó elemeket + listaként kezeli a függvény, így egymáshoz képesti sorrendjük nem változik + meg. + </para> + <para> + Az <parameter>array</parameter> elemeinek új számával tér vissza. + </para> + <para> + <example> + <title><function>array_unshift</function> példa</title> + <programlisting role="php"> +<![CDATA[ +$sor = array ("p1", "p3"); +array_unshift ($sor, "p4", "p5", "p6"); +]]> + </programlisting> + </example> + </para> + <para> + Ez azt eredményezi, hogy a <varname>$sor</varname> tömbnek 5 eleme + lesz: "p4", "p5", "p6", "p1" és "p3". + </para> + <para> + Lásd még: <function>array_shift</function>, + <function>array_push</function> és + <function>array_pop</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.array-values"> + <refnamediv> + <refname>array_values</refname> + <refpurpose>visszadja az összes tömbben elõforduló értéket</refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>array_values</function></funcdef> + <paramdef>array <parameter>input</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Az <function>array_values</function> visszadja az összes + <parameter>input</parameter> tömbben elõforduló értéket. + </para> + <para> + <example> + <title><function>array_values</function> példa</title> + <programlisting role="php"> +<![CDATA[ +$array = array ("méret" => "XL", "szín" => "arany"); +array_values ($array); // eredménye: array ("XL", "arany") +]]> + </programlisting> + </example> + </para> + <note> + <para> + Ez a függvény PHP 4-tõl hozzáférhetõ, a PHP 3-at használók számára + itt van egy lehetséges megvalósítás: + <example> + <title><function>array_values</function> megvalósítása PHP 3-ban</title> + <programlisting role="php"> +<![CDATA[ +function array_values ($arr) { + $t = array(); + while (list($k, $v) = each ($arr)) { + $t[] = $v; + } + return $t; +} +]]> + </programlisting> + </example> + </para> + </note> + <para> + Lásd még: <function>array_keys</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.array-walk"> + <refnamediv> + <refname>array_walk</refname> + <refpurpose> + felhasználói függvényt futtat a tömb minden elemén + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>int <function>array_walk</function></funcdef> + <paramdef>array <parameter>array</parameter></paramdef> + <paramdef>string <parameter>func</parameter></paramdef> + <paramdef>mixed <parameter><optional>userdata</optional></parameter></paramdef> + </funcprototype> + </funcsynopsis> + <simpara> + A <parameter>func</parameter> paraméterben megadott nevû felhasználói + függvényt alkalmazza az <parameter>array</parameter> tömb minden elemére. + A <parameter>func</parameter> függvény hívásakor elsõ paraméterként a + tömbérték, másodikként az indexe kerül átadásra. Ha a + <parameter>userdata</parameter> is szerepel, akkor ez lesz a harmadik + paraméter. A <parameter>func</parameter> nevû függvénynek a felhasználó + által definiáltnak kell lennie, és nem lehet natív PHP függvény. Emiatt + nem lehet <function>array_walk</function> hívásakor például közvetlenül a + <function>str2lower</function> meg hívni, hanem elõször létre kell hozni + egy saját függvényt, majd ennek átadni a paramétereket. + </simpara> + ¬e.func-callback; + <simpara> + Ha <parameter>func</parameter> két vagy három argumentumnál többet igényel + a <parameter>userdata</parameter>-tól függõen, akkor figyelmeztetõ + hibaüzenet (warning) keletkezik minden alkalommal, amikor az + <function>array_walk</function> meghívja a <function>array_walk</function> + függvényt. + Ezeket a figyelmeztetések elnyomhatók a '@' karaktert az + <function>array_walk</function> elé írva vagy az error_reporting() + használatával. + </simpara> + <note> + <para> + Ha a <parameter>func</parameter> függvénynek a tényleges tömbértékekkel + kell dolgoznia, akkor a <parameter>func</parameter> függvény elsõ + paraméterét referenciaként kell átadni. Ezután az ezen a változón végzett + változtatás az eredeti tömbben is változást idéz elõ. + </para> + <para> + A tömb <parameter>func</parameter> függvényen belüli módosítása + megjósolhatatlan viselkedést eredményezhet. + </para> + </note> + <note> + <para> + Az index és a userdata értékek átadása a <parameter>func</parameter> + függvénynek a a 4.0 verziótól elérhetõ. + </para> + <para> + PHP 4-ben <function>reset</function> függvényt szükség szerint meg kell + hívni, mivel az <function>array_walk</function> nem inicializálja a tömböt + alapértelmezés szerint. + </para> + </note> + <para> + <example> + <title><function>array_walk</function> példa</title> + <programlisting role="php"> +<![CDATA[ +$gyumolcsok = array ("d"=>"citrom", "a"=>"narancs", "b"=>"banán", "c"=>"alma"); + +function teszt_atir (&$elem1, $index, $prefix) { + $elem1 = "$prefix: $elem1"; +} + +function teszt_kiir ($elem2, $index) { + echo "$index. $elem2<br>\n"; +} + +array_walk ($gyumolcsok, 'test_kiir'); +reset ($gyumolcsok); +array_walk ($gyumolcsok, 'test_atir', 'gyumolcs'); +reset ($gyumolcsok); +array_walk ($gyumolcsok, 'test_kiir'); +]]> + </programlisting> + </example> + </para> + <simpara> + Lásd még: <function>each</function> és <function>list</function>! + </simpara> + </refsect1> + </refentry> + + <refentry id="function.arsort"> + <refnamediv> + <refname>arsort</refname> + <refpurpose> + fordított sorrendben rendez egy tömböt megtartva az indextársítást + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>void <function>arsort</function></funcdef> + <paramdef>array <parameter>array</parameter></paramdef> + <paramdef>int <parameter><optional>sort_flags</optional></parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Ez a függvény úgy rendezi az <parameter>array</parameter> tömböt, hogy + az indexek megtartják kapcsolatukat a hozzájuk rendelt tömb elemeivel. + Fõként akkor használják, ha az asszociatív tömbök rendezésénél + az aktuális elemsorrend is fontos. + </para> + <example> + <title><function>arsort</function> példa</title> + <programlisting role="php"> +<![CDATA[ +$gyumolcsok = array ("d"=>"citrom", "a"=>"narancs", "b"=>"banán", "c"=>"alma"); +arsort ($gyumolcsok); + reset ($gyumolcsok); +while (list ($key, $val) = each ($gyumolcsok)) { + echo "$key = $val\n"; +} +]]> + </programlisting> + <para> + Ez a példa a következõt írja ki: + <screen> +<![CDATA[ +a = narancs +d = citrom +b = banán +c = alma +]]> + </screen> + </para> + </example> + <para> + A gyümölcsök az abc-nek megfelelõen fordított sorrendben vannak rendezve, + és az indexek az eredeti elemekre mutatnak. + </para> + <para> + A rendezést befolyásolja a <parameter>sort_flags</parameter> paraméter, + részletesebben lásd a <function>sort</function> függvénynél! + </para> + <para> + Lásd még: <function>asort</function>, <function>rsort</function>, + <function>ksort</function> és <function>sort</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.asort"> + <refnamediv> + <refname>asort</refname> + <refpurpose>tömb elemeit rendezi megtartva az indextársítást</refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>void <function>asort</function></funcdef> + <paramdef>array <parameter>array</parameter></paramdef> + <paramdef>int <parameter><optional>sort_flags</optional></parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Ez a függvény úgy rendezi az <parameter>array</parameter> tömböt, hogy az + indexek megtartják kapcsolatukat a hozzájuk rendelt tömbelemekkel. Fõként + akkor használják, ha az asszociatív tömbök rendezésénél az aktuális + elemsorrend is fontos. + </para> + <example> + <title><function>asort</function> példa</title> + <programlisting role="php"> +<![CDATA[ +$gyumolcsok = array ("d"=>"citrom", "a"=>"narancs", "b"=>"banán", "c"=>"alma"); +asort ($gyumolcsok); +reset ($gyumolcsok); +while (list ($key, $val) = each ($gyumolcsok)) { + echo "$key = $val\n"; +} +]]> + </programlisting> + <para> + Ez a példa a következõt írja ki: + <screen> +<![CDATA[ +c = alma +b = banán +d = citrom +a = narancs +]]> + </screen> + </para> + </example> + <para> + A gyümölcsök az abc-nek megfelelõen növekvõ sorrendben vannak rendezve, + és az indexek az eredeti elemekre mutatnak. + </para> + <para> + A rendezést befolyásolja a <parameter>sort_flags</parameter> paraméter, + részletesebben lásd a <function>sort</function> függvénynél! + </para> + <para> + Lásd még: <function>arsort</function>, <function>rsort</function>, + <function>ksort</function> és <function>sort</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.compact"> + <refnamediv> + <refname>compact</refname> + <refpurpose> + tömbbe tömöríti a változókat és értékeiket + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>compact</function></funcdef> + <paramdef>mixed <parameter>varname</parameter></paramdef> + <paramdef>mixed <parameter><optional>...</optional></parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + A <function>compact</function> változó számú paramétert fogad el. + Minden paraméter lehet egy változónevet tartalmazó sztring vagy + akár tömb is. A tömbben lehetnek újabb tömbök is, amelyek a változók + neveit tárolják, a <function>compact</function> rekurzívan kezeli ezt. + </para> + <para> + A <function>compact</function> a változót a neve alapján megkeresi az + aktuális szimbólumtáblában és hozzáadja a kimeneti tömbhöz. A változó + neve lesz a kulcs és a kulcshoz tartozó értéke pedig a változó értéke. + Röviden, <function>extract</function>-tal ellentétesen mûködik. + Az összes hozzáadott változót tároló kimeneti tömbbel tér vissza. + </para> + <para> + Az a sztring, amelynek megfelelõ változó definiálatlan, ki lesz hagyva. + </para> + <para> + <example> + <title><function>compact</function> példa</title> + <programlisting role="php"> +<![CDATA[ +$varos = "Miskolc"; +$mmegye = "BAZ"; +$esemeny = "P.A. elhagyja a varost"; + +$helyrajz = array ("varos", "megye"); + +$eredmeny = compact ("esemeny", "semmi_ilyen_valtozo_nincs", $helyrajz); +]]> + </programlisting> + <para> + A <varname>$eredmeny</varname> értéke <literal>array + ("esemeny" => "P.A. elhagyja a varost", "varos" => "Miskolc", + "megye" => "BAZ")</literal>. + </para> + </example> + </para> + <para> + Lásd még: <function>extract</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.count"> + <refnamediv> + <refname>count</refname> + <refpurpose>megszámolja az elemeket egy változóban</refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>int <function>count</function></funcdef> + <paramdef>mixed <parameter>var</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Visszaadja a <parameter>var</parameter> változó az elemeinek számát, + amely általában <type>array</type>(tömb) típusú (mivel bármi másnak egy + eleme lehet). + </para> + <para> + Ha a <parameter>var</parameter> változó nem tömb, akkor 1-et ad vissza, + kivétel a <literal>count(&null;)</literal> ami egyenlõ + <literal>0</literal>-val. + </para> + <warning> + <para> + A <function>count</function> 0-val térhet vissza definiálatlan + változók esetén és üres tömbök esetén is. Az <function>isset</function> + segítségével lehet megvizsgálni, hogy a változó be van-e állítva. + </para> + </warning> + <para> + Olvasd át a kézikönyv <link linkend="language.types.array">Tömbök</link> + c. fejezetét a PHP-ban megvalósított tömbök részletes magyarazátáért. + </para> + <para> + <example> + <title><function>count</function> példa</title> + <programlisting role="php"> + <!-- TODO: examples about count(null), count(false), count(object).. --> +<![CDATA[ +$a[0] = 1; +$a[1] = 3; +$a[2] = 5; +$eredmeny = count ($a); +// $eredmeny == 3 + +$b[0] = 7; +$b[5] = 9; +$b[10] = 11; +$eredmeny = count ($b); +// $eredmeny == 3; +]]> +</programlisting> + </example> + </para> + <note> + <para> + A <function>sizeof</function> függvény a <function>count</function> + függvény álneve. + </para> + </note> + <para> + Lásd még: <function>is_array</function>, + <function>isset</function> és + <function>strlen</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.current"> + <refnamediv> + <refname>current</refname> + <refpurpose>visszaadja egy tömb aktuális elemét</refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>mixed <function>current</function></funcdef> + <paramdef>array <parameter>array</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Minden tömbnek van egy ún. belsõ mutatója, amely a jelenlegi + elemre mutat. A tömbbe beszúrt elsõ elemre van inicializálva. + </para> + <para> + A <function>current</function> függvény egyszerûen visszaadja + a belsõ mutató által megjelölt tömbelemet. A mutató soha nem + mozdul el errõl az elemrõl. Ha a belsõ mutató az elemlista vége + mögé mutat, akkor <function>current</function> függvény &false;-ot ad + vissza. + <warning> + <para> + Ha a tömb üres elemeket tartalmaz (0 vagy "" - üres string), akkor ez a + függvény az ilyen elemeknél &false;-ot ad vissza. Ez lehetetlenné teszi + annak megállapítását a <function>current</function> függvénnyel, hogy + valóban a lista végére került-e a mutató. Az <function>each</function> + függvénnyel helyesen végig lehet lépkedni egy üres elemeket tartalmazó + tömbön. + </para> + </warning> + </para> + <para> + Lásd még: <function>end</function>, <function>next</function>, + <function>prev</function> és <function>reset</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.each"> + <refnamediv> + <refname>each</refname> + <refpurpose> + visszaadja a tömb pillanatnyilag kijelölt elemét és lépteti a belsõ mutatót + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>each</function></funcdef> + <paramdef>array <parameter>array</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Az <function>each</function> visszaadja az <parameter>array</parameter> + tömb jelenlegi index-érték párját, és elõre mozgatja a tömb belsõ mutatóját. + Ez a index-érték pár egy négyelemû tömbben kerül visszaadásra az alábbi + kulcsokkal: 0, 1, key, and value, valamint az alábbi elemekkel. + <emphasis>0</emphasis>, <emphasis>1</emphasis>,<emphasis>key</emphasis> és + <emphasis>value</emphasis>. A <emphasis>0</emphasis> és a + <emphasis>key</emphasis> tartalmazza a tömbelem kulcsát, + <emphasis>1</emphasis> és <emphasis>value</emphasis> pedig az adatokat. + </para> + <para> + Ha a belsõ mutató az elemlista vége mögé mutat, akkor + <function>each</function> függvény &false;-ot ad vissza. + </para> + <para> + <example> + <title><function>each</function> példák</title> + <programlisting role="php"> +<![CDATA[ +$ize = array ("bob", "fred", "jussi", "jouni", "egon", "marliese"); +$bigyo = each ($ize); +print_r($bigyo); +]]> + </programlisting> + </example> + $bigyo tartalma most: + <screen> +<![CDATA[ +Array ( + 0 => 0 + 1 => 'bob' + key => 0 + value => 'bob' +) +]]> + </screen> + </para> + <para> + <programlisting role="php"> +<![CDATA[ +$ize = array ("Robert" => "Bob", "Seppo" => "Sepi"); +$bigyo = each ($ize); +]]> + </programlisting> + </para> + <para> + $bigyo tartalma most: + <screen> +<![CDATA[ +Array ( + 0 => Robert + 1 => 'Bob' + key => Robert + value => 'Bob' +) +]]> + </screen> + </para> + <para> + Az <function>each</function>-et a <function>list</function>-tel együtt + szokás használni tömbök bejárására, mint például a + <varname>$HTTP_POST_VARS</varname>: + <example> + <title> + <varname>$HTTP_POST_VARS</varname> bejárása <function>each</function> függvénnyel + </title> + <programlisting role="php"> +<![CDATA[ +echo "POST metódussal elküldött változók:<br>"; +reset ($HTTP_POST_VARS); +while (list ($key, $val) = each ($HTTP_POST_VARS)) { + echo "$key => $val<br>"; +} +]]> + </programlisting> + </example> + </para> + <para> + Az each() függvény lefutása után a belsõ tömbmutató a tömb következõ + elemére ugrik, vagy az utolsó elemre, ha a tömb végén áll a mutató. + Használd a <function>reset</function>-et, ha újból végig kell lépkedni + a tömbön. + </para> + <para> + Lásd még: <function>key</function>, <function>list</function>, + <function>current</function>, <function>reset</function>, + <function>next</function> és <function>prev</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.end"> + <refnamediv> + <refname>end</refname> + <refpurpose> + az utolsó elemre állítja a tömb belsõ mutatóját + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>mixed <function>end</function></funcdef> + <paramdef>array <parameter>array</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Az <function>end</function> a <parameter>array</parameter> tömb + belsõ mutatóját annak utolsó elemére állítja, és azt adja vissza. + </para> + <para> + Lásd még: <function>current</function>, + <function>each</function>, + <function>next</function> és <function>reset</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.extract"> + <refnamediv> + <refname>extract</refname> + <refpurpose> + tömbbõl változókat helyez el az aktuális szimbólumtáblába + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>int <function>extract</function></funcdef> + <paramdef>array <parameter>var_array</parameter></paramdef> + <paramdef>int <parameter><optional>extract_type</optional></parameter></paramdef> + <paramdef>string <parameter><optional>prefix</optional></parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Ez a függvény arra szolgál, hogy egy tömb tartalma alapján változókat + helyezzen el az aktuális szimbólumtáblában. A paraméterként kapott + <parameter>var_array</parameter> tömb kulcsait tekinti a változók neveinek + és a tömbelemek értékeit a változók tartalmának. Minden kulcs-érték párból + készül egy változó a szimbólumtáblában, az + <parameter>extract_type</parameter> és <parameter>prefix</parameter> + paraméterektõl függõen. + </para> + <note> + <para> + PHP 4.0.5-tõl kezdve a beillesztett változók számával tér vissza a + függvény. + </para> + </note> + <para> + Az <function>extract</function> megvizsgál minden kulcsot (indexet), hogy + az lehet-e egy érvényes változónév vagy sem, és hogy ilyen nevû változó + létezik-e már a szimbólumtáblában (ütközés). Az érvénytelen változónevek + és ütközések az <parameter>extract_type</parameter> paraméterben + megadottak szerint lesz kezelve. Lehetséges értékei: + <variablelist> + <varlistentry> + <term>EXTR_OVERWRITE</term> + <listitem> + <simpara> + Ütközéskor felülírja a már létezõ változót. + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term>EXTR_SKIP</term> + <listitem> + <simpara> + Ütközéskor nem írja felül a létezõ változót. + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term>EXTR_PREFIX_SAME</term> + <listitem> + <simpara> + Ütközéskor a létrehozandó változó neve elé + <parameter>prefix</parameter> kerül. + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term>EXTR_PREFIX_ALL</term> + <listitem> + <simpara> + Minden létrehozandó változó neve elé <parameter>prefix</parameter> + kerül. PHP 4.0.5-tõl kezdve ez érvényes a numerikus indexû elemekre + is. + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term>EXTR_PREFIX_INVALID</term> + <listitem> + <simpara> + Minden érvénytelen nevû változónév elé a <parameter>prefix</parameter> + kerül. PHP 4.0.5-tõl kezdve használható ez beállítás. + </simpara> + </listitem> + </varlistentry> + </variablelist> + </para> + <para> + Ha nincs megadva az <parameter>extract_type</parameter>, akkor EXTR_OVERWRITE + az alapértelmezés. + </para> + <para> + A <parameter>prefix</parameter> csak akkor szükséges, ha az + <parameter>extract_type</parameter> EXTR_PREFIX_SAME, EXTR_PREFIX_ALL vagy + EXTR_PREFIX_INVALID értékû. Ha prefixszel ellátott változónév sem érvényes, + akkor az nem kerül bele a szimbólumtáblába. + </para> + <para> + Az <function>extract</function> a sikeresen beillesztett változók számával + tér vissza. + </para> + <para> + Az extract függvény egy lehetséges használata azoknak a változóknak a + szimbólumtáblába importálása, amelyeket a + <function>wddx_deserialize</function> adott vissza egy asszociatív + tömbben. + </para> + <para> + <example> + <title><function>extract</function> példa</title> + <programlisting role="php"> +<![CDATA[ +<?php + +/* Feltételezi, hogy a $var_array egy a + wddx_deserialize által visszaadott tömb*/ + +$méret = "nagy"; +$var_tomb = array ("szín" => "kék", + "méret" => "közepes", + "alak" => "gömb"); +extract ($var_tomb, EXTR_PREFIX_SAME, "wddx"); + +print "$szín, $méret, $alak, $wddx_méret\n"; +?> +]]> + </programlisting> + </example> + </para> + <para> + A fenti példa ezt eredményezi: + <programlisting> +<![CDATA[ +kék, nagy, gömb, közepes +]]> + </programlisting> + </para> + <para> + A <varname>$méret</varname> változó nem lett felülírva az EXTR_PREFIX_SAME + megadása miatt, amely azt eredményezte, hogy ehelyett a + <varname>$wddx_méret</varname> változóba került az új érték. + Ha EXTR_SKIP-et használtunk volna, akkor a $wddx_size sem került volna + létrehozásra. Az EXTR_OVERWRITE pedig azt okozta volna, hogy a + <varname>$méret</varname> értéke "közepes"-re változott volna. + Az EXTR_PREFIX_ALL-lal pedig minden változó neve wddx-szel kezdõdne: + <varname>$wddx_szín</varname>, + <varname>$wddx_méret</varname> és + <varname>$wddx_alak</varname>. + </para> + <para> + Asszociatív tömböket kell használni, mert a numerikusan indexeltek nem + adnak eredményt. + </para> + <para> + Lásd még: <function>compact</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.in-array"> + <refnamediv> + <refname>in_array</refname> + <refpurpose>&true;-val tér vissza, ha létezik az érték a tömbben</refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>bool <function>in_array</function></funcdef> + <paramdef>mixed <parameter>needle</parameter></paramdef> + <paramdef>array <parameter>haystack</parameter></paramdef> + <paramdef>bool <parameter><optional>strict</optional></parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Átnézi a <parameter>haystack</parameter> tömböt a + <parameter>needle</parameter> elemet keresve és &true;-t ad vissza, + ha megtalálta és &false;-ot egyébként. + </para> + <para> + Ha a harmadik, <parameter>strict</parameter> paraméter értéke &true;, + akkor az <function>in_array</function> a <parameter>needle</parameter> + <link linkend="language.types">típusát</link> is összeveti + a <parameter>haystack</parameter> tömb elemeiével. + </para> + <note> + <para> + Ha a <parameter>needle</parameter> paraméter sztring, akkor az + összehasonlítás kis- és nagybetûk különbözõségére érzékeny. + </para> + </note> + <para> + <example> + <title><function>in_array</function> példa</title> + <programlisting role="php"> +<![CDATA[ +$os = array ("Mac", "NT", "Irix", "Linux"); +if (in_array ("Irix", $os)) { + print "Got Irix"; +} +if (in_array ("mac", $os)) { // sikertelen, mert az in_array() érzékeny + // a kis- és nagybetûk különbségére + print "Got mac"; +} +]]> + </programlisting> + </example> + </para> + <para> + <example> + <title> + <function>in_array</function> strict paraméterrel</title> + <programlisting role="php"> +<![CDATA[ +<?php +$a = array('1.10', 12.4, 1.13); + +if (in_array('12.4', $a, TRUE)) + echo "szigorúan '12.4'-ot találtam meg.\n"; +if (in_array(1.13, $a, TRUE)) + echo "szigorúan 1.13-ot találtam meg. \n"; +?> + +// ennek a kimenete: + +szigorúan 1.13-ot találtam meg +]]> +</programlisting> + </example> + </para> + <para> + Lásd még: <function>array_search</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.array-search"> + <refnamediv> + <refname>array_search</refname> + <refpurpose> + adott elemet keres a tömbben és az indexével tér vissza + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>mixed <function>array_search</function></funcdef> + <paramdef>mixed <parameter>needle</parameter></paramdef> + <paramdef>array <parameter>haystack</parameter></paramdef> + <paramdef>bool <parameter><optional>strict</optional></parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Átnézi a <parameter>haystack</parameter> tömböt a + <parameter>needle</parameter> elemet keresve és visszaadja az + indexét/kulcsát, ha megtalálta, egyébként &false;-ot. + </para> + <para> + Ha a harmadik, <parameter>strict</parameter> paraméter értéke &true;, + akkor az <function>array_search</function> a <parameter>needle</parameter> + <link linkend="language.types">típusát</link> is összeveti + a <parameter>haystack</parameter> tömb elemeiével. + </para> + &return.falseproblem; + <para> + Lásd még: <function>in_array</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.key"> + <refnamediv> + <refname>key</refname> + <refpurpose> + asszociatív tömb pillanatnyilag kiválasztott kulcsát adja vissza + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>mixed <function>key</function></funcdef> + <paramdef>array <parameter>array</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + A <function>key</function> a belsõ tömbmutató által pillanatnyilag + kijelölt elem kulcsával tér vissza. + </para> + <para> + Lásd még: <function>current</function> és <function>next</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.krsort"> + <refnamediv> + <refname>krsort</refname> + <refpurpose>kulcsok alapján fordított sorrendbe rendez egy tömböt</refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>int <function>krsort</function></funcdef> + <paramdef>array <parameter>array</parameter></paramdef> + <paramdef>int <parameter><optional>sort_flags</optional></parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Ez a függvény úgy rendezi az <parameter>array</parameter> tömböt a kulcsai + alapján, hogy az indexek megtartják kapcsolatukat a hozzájuk rendelt tömb + elemeivel. Fõként asszociatív tömbök rendezéséhez használatos. + <example> + <title><function>krsort</function> példa</title> + <programlisting role="php"> +<![CDATA[ +$gyumolcsok = array ("d"=>"citrom", "a"=>"narancs", "b"=>"banán", "c"=>"alma"); +krsort ($gyumolcsok); + reset ($gyumolcsok); +while (list ($key, $val) = each ($gyumolcsok)) { + echo "$key = $val\n"; +} +]]> + </programlisting> + </example> + </para> + <para> + Ez a példa a következõt írja ki: + </para> + <para> + <informalexample> + <programlisting> +<![CDATA[ +d = citrom +c = alma +b = banán +a = narancs +]]> + </programlisting> + </informalexample> + </para> + <para> + A rendezést befolyásolja a <parameter>sort_flags</parameter> paraméter, + részletesebben lásd a <function>sort</function> függvénynél! + </para> + <simpara> + Lásd még: <function>asort</function>, <function>arsort</function>, + <function>ksort</function> + <function>sort</function>, + <function>natsort</function> és <function>rsort</function>! + </simpara> + </refsect1> + </refentry> + + <refentry id="function.ksort"> + <refnamediv> + <refname>ksort</refname> + <refpurpose>kulcsok alapján rendezi a tömböt</refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>int <function>ksort</function></funcdef> + <paramdef>array <parameter>array</parameter></paramdef> + <paramdef>int <parameter><optional>sort_flags</optional></parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Ez a függvény úgy rendezi az <parameter>array</parameter> tömböt a kulcsai + alapján, hogy az indexek megtartják kapcsolatukat a hozzájuk rendelt tömb + elemeivel. Fõként asszociatív tömbök rendezéséhez használatos. + <example> + <title><function>ksort</function> példa</title> + <programlisting role="php"> +<![CDATA[ +$gyumolcsok = array ("d"=>"citrom", "a"=>"narancs", "b"=>"banán", "c"=>"alma"); +ksort ($gyumolcsok); +reset ($gyumolcsok); +while (list ($key, $val) = each ($gyumolcsok)) { + echo "$key = $val\n"; +} +]]> + </programlisting> + </example> + </para> + <para> + Ez a példa a következõt írja ki: + </para> + <para> + <informalexample> + <programlisting> +<![CDATA[ +a = narancs +b = banán +c = alma +d = citrom +]]> + </programlisting> + </informalexample> + </para> + <para> + A rendezést befolyásolja a <parameter>sort_flags</parameter> paraméter, + részletesebben lásd a <function>sort</function> függvénynél! + </para> + <simpara> + Lásd még: <function>asort</function>, <function>arsort</function>, + <function>sort</function>, <function>natsort</function> és + <function>rsort</function>! + </simpara> + <note> + <para> + A második paraméter PHP 4-ben használható. + </para> + </note> + </refsect1> + </refentry> + + <refentry id="function.list"> + <refnamediv> + <refname>list</refname> + <refpurpose> + Assign variables as if they were an array + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>void <function>list</function></funcdef> + <varargs/> + </funcprototype> + </funcsynopsis> + <para> + Az <function>array</function>-hoz hasonlóan a <function>list</function> sem + valódi függvény, hanem nyelvi építõelem. A <function>list</function> + a több változó érték-hozzárendelésére szolgál egy mûveleten belül. + <example> + <title><function>list</function> példa</title> + <programlisting role="php"> +<![CDATA[ +<table> + <tr> + <th>Alkalmazott neve</th> + <th>fizetése</th> + </tr> + +<?php + +$result = mysql_query ("SELECT id, nev, fizetes FROM alkalmazottak",$conn); +while (list ($id, $nev, $fizetes) = mysql_fetch_row ($result)) { + print (" <tr>\n". + " <td><a href=\"info.php?id=$id\">$nev</a></td>\n". + " <td>$fizetes</td>\n". + " </tr>\n"); +} + +?> + +</table> +]]> + </programlisting> + </example> + </para> + <para> + Lásd még: <function>each</function> és <function>array</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.natsort"> + <refnamediv> + <refname>natsort</refname> + <refpurpose> + tömböt rendez a "natural order" (természetes sorrend) algoritmus alapján + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>void <function>natsort</function></funcdef> + <paramdef>array <parameter>array</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Ez a függvény olyan rendezõ algoritmust valósít meg, amely az + alfanumerikus sztringeket úgy rendezi, ahogy azt egy ember tenné. Ezt az + eljárást nevezik "natural ordering"-nek - természetes rendezésnek. + A <function>sort</function> függvény reguláris rendezési algortimusa és + eközötti különbséget szemlélteti a következõ példa: + </para> + <para> + <example> + <title><function>natsort</function> példa</title> + <programlisting role="php"> +<![CDATA[ +$array1 = $array2 = array ("img12.png", "img10.png", "img2.png", "img1.png"); + +sort($array1); +echo "Hagyományos rendezés\n"; +print_r($array1); + +natsort($array2); +echo "\nTermészetes rendezés\n"; +print_r($array2); +]]> + </programlisting> + </example> + </para> + <para> + Ez a példa a következõt írja ki: + </para> + <para> + <screen> +<![CDATA[ +Hagyományos rendezés +Array +( + [0] => img1.png + [1] => img10.png + [2] => img12.png + [3] => img2.png +) + +Természetes rendezés +Array +( + [3] => img1.png + [2] => img2.png + [1] => img10.png + [0] => img12.png +) +]]> + </screen> + Részletesebb leírásért lásd: Martin Pool <ulink url="&url.strnatcmp;">Natural Order String Comparison</ulink> + c. oldalát! + </para> + <para> + Lásd még: <function>natcasesort</function>, + <function>strnatcmp</function> és + <function>strnatcasecmp</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.natcasesort"> + <refnamediv> + <refname>natcasesort</refname> + <refpurpose> + tömböt rendez a "natural order" (természetes sorrend) algoritmus alapján + kis-nagybetûk figyelembevétele nélkül + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>void <function>natcasesort</function></funcdef> + <paramdef>array <parameter>array</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Ez a függvény olyan rendezõ algoritmust valósít meg, amely az + alfanumerikus sztringeket úgy rendezi, ahogy azt egy ember tenné. Ezt az + eljárást nevezik "natural ordering"-nek - természetes rendezésnek. + </para> + <para> + A <function>natcasesort</function> függvény a <function>natsort</function> + olyan változata, amely érzéketlen a kis- és nagybetûk különbségére. + Lásd a <function>natsort</function> függvényt a reguláris és a természetes + rendezési algortimusok közötti különbségért! + </para> + <para> + Részletesebb leírásért lásd: Martin Pool <ulink url="&url.strnatcmp;">Natural Order String Comparison</ulink> + c. oldalát! + </para> + <para> + Lásd még: <function>sort</function>, + <function>natsort</function>, + <function>strnatcmp</function> és + <function>strnatcasecmp</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.next"> + <refnamediv> + <refname>next</refname> + <refpurpose> + elõre mozgatja a tömb belsõ mutatóját + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>mixed <function>next</function></funcdef> + <paramdef>array <parameter>array</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Visszaadja belsõ tömbmutató poziciója utáni elemet, + vagy &false;-ot, ha nincs következõ elem. + </para> + <para> + A <function>next</function> a <function>current</function>-hoz + hasonlóan viselkedik egy különbséggel. A belsõ tömbmutatót egy hellyel + elõbbre állítja, mielött visszadná az elemet. Ez azt jelenti, hogy a + mostani pozició után következõ elemmel tér vissza, és a belsõ tömbmutatót + is eggyel elõre lépteti. Ha a belsõ tömbmutató az elemlista végére ér, + akkor a <function>next</function> &false;-ot ad vissza. + <warning> + <para> + Ha a tömb üres elemeket is tartalmaz, akkor ezeknél az elemeknél a + függvény ugyanúgy &false;-szal tér vissza. Üres elemeket tartalmazó + tömb bejárásához nézd meg az <function>each</function> függvényt! + </para> + </warning> + </para> + <para> + Lásd még: + <function>current</function>, <function>end</function>, + <function>prev</function> és <function>reset</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.pos"> + <refnamediv> + <refname>pos</refname> + <refpurpose>visszaadja a tömb aktuális elemét</refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>mixed <function>pos</function></funcdef> + <paramdef>array <parameter>array</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <simpara> + Ez a <function>current</function> függvény álneve. + </simpara> + <para> + Lásd még: + <function>end</function>, <function>next</function>, + <function>prev</function> és <function>reset</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.prev"> + <refnamediv> + <refname>prev</refname> + <refpurpose>visszlépteti a tömb belsõ mutatóját</refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>mixed <function>prev</function></funcdef> + <paramdef>array <parameter>array</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Visszaadja belsõ tömbmutató pozíciója elõtti tömbelemet, + vagy &false;-ot ha nincs következõ elem. + <warning> + <para> + Ha a tömb üres elemeket is tartalmaz, akkor ezeknél az elemeknél a + függvény ugyanúgy &false;-szal tér vissza. Üres elemeket tartalmazó + tömb bejárásához nézd meg az <function>each</function> függvényt! + </para> + </warning> + </para> + <para> + A <function>prev</function> a <function>next</function>-hez hasonlóan + mûködik, kivéve hogy a tömbmutatót visszafelé lépteti nem pedig elõre. + </para> + <para> + Lásd még: <function>current</function>, <function>end</function>, + <function>next</function> és <function>reset</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.range"> + <refnamediv> + <refname>range</refname> + <refpurpose> + egy tartományt lefedõ tömböt készít + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>range</function></funcdef> + <paramdef>mixed <parameter>low</parameter></paramdef> + <paramdef>mixed <parameter>high</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + A <function>range</function> a <parameter>low</parameter> és + <parameter>high</parameter> közé esõ elemekbõl alkotott tömbbel tér + vissza. Ha <parameter>low</parameter> nagyobb mint + <parameter>high</parameter>, akkor a sorozat high-tól indul low felé. + </para> + <example> + <title><function>range</function> példák</title> + <programlisting role="php"> +<![CDATA[ +foreach(range(0, 9) as $szam) { + echo $szam; +} +foreach(range('a', 'z') as $betu) { + echo $betu; +} +foreach(range('z', 'a') as $betu) { + echo $betu; +} +]]> + </programlisting> + </example> + <note> + <para> + A 4.1.0 verziót megelõzõen a <function>range</function> függvény + csak a növekvõ egészszámokból álló tömböt tudott generálni. A + karakteres tartomány és a csökkenõ sorrendû elemek támogatása + a 4.1.0 verziótól létezik. + </para> + <example> + <title>csökkenõ és a karakteres tartományok szimulációja</title> + <programlisting role="php"> +<![CDATA[ +// array_reverse használható arra, hogy megfordítsa a tömböt +foreach(array_reverse(range(0,9)) as $szam) { + echo $szam; +} + +# array_map() és chr() használható arra, hogy számokból karaktereket alkosson +foreach(array_map('chr', range(ord('a'),ord('z'))) as $karakter) { + echo $karakter; +} +]]> + </programlisting> + </example> + </note> + <para> + Lásd még a <function>shuffle</function> függvényt további példákért! + </para> + </refsect1> + </refentry> + + <refentry id="function.reset"> + <refnamediv> + <refname>reset</refname> + <refpurpose> + a tömb belsõ mutatóját az elsõ elemére állítja + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>mixed <function>reset</function></funcdef> + <paramdef>array <parameter>array</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + A <function>reset</function> visszaállítja az <parameter>array</parameter> + tömb belsõ tömbmutatóját az elsõ elemre. + </para> + <para> + <function>reset</function> a tömb elsõ elemével tér vissza. + </para> + <para> + Lásd még: <function>current</function>, + <function>each</function>, <function>next</function> + és <function>prev</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.rsort"> + <refnamediv> + <refname>rsort</refname> + <refpurpose>fordított sorrendben rendez egy tömböt</refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>void <function>rsort</function></funcdef> + <paramdef>array <parameter>array</parameter></paramdef> + <paramdef>int <parameter><optional>sort_flags</optional></parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Ez a függvény fordított sorrendben rendezi át a tömböt: a legnagyobbtól + a legkisebb felé. + <example> + <title><function>rsort</function> példa</title> + <programlisting role="php"> +<![CDATA[ +$gyumolcsok = array ("citrom", "narancs", "banán", "alma"); +rsort ($gyumolcsok); +reset ($gyumolcsok); +while (list ($key, $val) = each ($gyumolcsok)) { + echo "$key = $val\n"; +} +]]> + </programlisting> + </example> + </para> + <para> + Ez a példa a következõt írja ki: + </para> + <para> + <screen> +<![CDATA[ +0 = narancs +1 = citrom +2 = banán +3 = alma +]]> + </screen> + </para> + <para> + A gyümölcsök az abc-nek megfelelõen fordított sorrendben vannak rendezve. + </para> + <para> + A rendezést befolyásolja a <parameter>sort_flags</parameter> paraméter, + részletesebben lásd a <function>sort</function> függvénynél! + </para> + <para> + Lásd még: <function>arsort</function>, + <function>asort</function>, <function>ksort</function>, + <function>sort</function> és <function>usort</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.shuffle"> + <refnamediv> + <refname>shuffle</refname> + <refpurpose>összekeveri a tömb elemeit</refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>void <function>shuffle</function></funcdef> + <paramdef>array <parameter>array</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Ez a függvény véletlenszerûen összekeveri a tömb elemeit. + Az <function>srand</function> függvényt meg kell hívni, hogy + inicializálja a véletlenszám-generátort! + <example> + <title><function>shuffle</function> példa</title> + <programlisting role="php"> +<![CDATA[ +$numbers = range (1,20); +srand ((float)microtime()*1000000); +shuffle ($numbers); +while (list (, $number) = each ($numbers)) { + echo "$number "; +} +]]> + </programlisting> + </example> + </para> + <para> + Lásd még: <function>arsort</function>, <function>asort</function>, + <function>ksort</function>, <function>rsort</function>, + <function>sort</function> és <function>usort</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.sizeof"> + <refnamediv> + <refname>sizeof</refname> + <refpurpose>visszadja a változó elemszámát</refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>int <function>sizeof</function></funcdef> + <paramdef>mixed <parameter>var</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + A <function>sizeof</function> függvény a <function>count</function> + álneve. + </para> + <para> + Lásd még: <function>count</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.sort"> + <refnamediv> + <refname>sort</refname> + <refpurpose>tömböt rendez</refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>void <function>sort</function></funcdef> + <paramdef>array <parameter>array</parameter></paramdef> + <paramdef>int <parameter><optional>sort_flags</optional></parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Ez a függvény egy tömb elemeit rendezi sorba a legkisebbtõl haladva a + legnagyobb felé - azaz növekvõ sorrendben. + <example> + <title><function>sort</function> példa</title> + <programlisting role="php"> +<![CDATA[ +<?php + +$gyumolcsok = array ("citrom", "narancs", "banán", "alma"); +sort ($gyumolcsok); +reset ($gyumolcsok); +while (list ($key, $val) = each ($gyumolcsok)) { + echo "gyumolcsok[".$key."] = ".$val."\n"; +} + +?> +]]> + </programlisting> + </example> + </para> + <para> + Ez a példa a következõt írja ki: + </para> + <para> + <screen> +<![CDATA[ +gyumolcsok[0] = alma +gyumolcsok[1] = banán +gyumolcsok[2] = citrom +gyumolcsok[3] = narancs +]]> +</screen> + </para> + <para> + A gyümölcsök az abc sorrendben vannak rendezve. + </para> + <para> + A rendezést befolyásolja a <parameter>sort_flags</parameter> paraméter, + amelynek a következõ értékei lehetnek: + </para> + <para> + Sorting type flags: + <itemizedlist> + <listitem> + <simpara>SORT_REGULAR - az elemeket hagyományosan hasonlítja össze</simpara> + </listitem> + <listitem> + <simpara>SORT_NUMERIC - az elemeket számokként hasonlítja össze</simpara> + </listitem> + <listitem> + <simpara>SORT_STRING - az elemeket szövegként hasonlítja össze</simpara> + </listitem> + </itemizedlist> + </para> + <para> + Lásd még: <function>arsort</function>, + <function>asort</function>, <function>ksort</function>, + <function>natsort</function>, <function>natcasesort</function>, + <function>rsort</function>, <function>usort</function>, + <function>array_multisort</function> és + <function>uksort</function>! + </para> + <note> + <para> + A második paraméter PHP 4-tõl használható. + </para> + </note> + </refsect1> + </refentry> + + <refentry id="function.uasort"> + <refnamediv> + <refname>uasort</refname> + <refpurpose> + tömböt rendez egy felhasználó összehasonlító függvénnyel megtartva az indextársítást + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>void <function>uasort</function></funcdef> + <paramdef>array <parameter>array</parameter></paramdef> + <paramdef>function <parameter>cmp_function</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Ez a függvény úgy rendez egy tömböt, hogy megtartja az indexek és az + értékek közti relációt. Fõleg akkor használatos, amikor az asszociatív + tömböket rendezzük, ahol az elemek sorrendje fontos. Az összehasonlítást + végzõ függvényt a felhasználó határozza meg. + </para> + <note> + <para> + További példákért lásd a <function>usort</function> and + <function>uksort</function> for példas of user-defined + comparison functions. + </para> + </note> + ¬e.func-callback; + <para> + Lásd még: <function>usort</function>, <function>uksort</function>, + <function>sort</function>, <function>asort</function>, + <function>arsort</function>, <function>ksort</function> + és <function>rsort</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.uksort"> + <refnamediv> + <refname>uksort</refname> + <refpurpose> + tömböt rendez kulcsai alapján egy felhasználó összehasonlító függvénnyel + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>void <function>uksort</function></funcdef> + <paramdef>array <parameter>array</parameter></paramdef> + <paramdef>function <parameter>cmp_function</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Ez a függvény egy felhasználói függvénnyel átrendezi a tömböt a kulcsok + szerint. Akkor használjuk ezt a függvényt, ha a rendezendõ tömböt nem + szokványos feltétel alapján akarjuk rendezni, + </para> + <example> + <title><function>uksort</function> példa</title> + <programlisting role="php"> +<![CDATA[ +function cmp ($a, $b) { + if ($a == $b) return 0; + return ($a > $b) ? -1 : 1; +} + +$a = array (4 => "négy", 3 => "három", 20 => "húsz", 10 => "tíz"); + +uksort ($a, "cmp"); + +while (list ($key, $val) = each ($a)) { + echo "$key: $val\n"; +} +]]> + </programlisting> + </example> + <para> + Ez a példa a következõt írja ki: + </para> + <para> + <screen> +<![CDATA[ +20: húsz +10: tíz +4: négy +3: három +]]> + </screen> + </para> + ¬e.func-callback; + <para> + Lásd még: <function>usort</function>, <function>uasort</function>, + <function>sort</function>, <function>asort</function>, + <function>arsort</function>, <function>ksort</function>, + <function>natsort</function> és <function>rsort</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.usort"> + <refnamediv> + <refname>usort</refname> + <refpurpose> + tömböt rendez elemértékei alapján egy felhasználó összehasonlító függvénnyel + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>void <function>usort</function></funcdef> + <paramdef>array <parameter>array</parameter></paramdef> + <paramdef>string <parameter>cmp_function</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Ez a függvény a <parameter>cmp_function</parameter> paraméterben megadott + nevû felhasználói függvénnyel rendezi az <parameter>array</parameter> tömb + elemeit. Ha a rendezendõ tömböt nem szokványos feltétel alapján akarjuk + rendezni, akkor használjuk ezt a függvényt. + </para> + <para> + Az összehasonlító függvénynek 0-nál kisebb vagy nagyobb ill. 0 értéket kell + visszaadnia, ha az elsõ elem kisebb vagy nagyobb a másodiknál, ill. ha egyenlõk. + Ha két elem egyenlõ, sorrendjük a rendezett tömbben nem definiált. + </para> + ¬e.func-callback; + <para> + <example> + <title><function>usort</function> példa</title> + <programlisting role="php"> +<![CDATA[ +function cmp ($a, $b) { + if ($a == $b) return 0; + return ($a > $b) ? -1 : 1; +} + +$a = array (3, 2, 5, 6, 1); + +usort ($a, "cmp"); + +while (list ($key, $val) = each ($a)) { + echo "$key: $value\n"; +} +]]> +</programlisting> + </example> + </para> + <para> + Ez a példa a következõt írja ki: + </para> + <para> + <screen> +<![CDATA[ +0: 6 +1: 5 +2: 3 +3: 2 +4: 1 +]]> + </screen> + </para> + <note> + <para> + Ebben az egyszerû esetben nyilvánvalóan jobb választás az + <function>rsort</function> függvény használata. + </para> + </note> + <para> + <example> + <title>Az <function>usort</function> használata több dimenziós tömbökön</title> + <programlisting role="php"> +<![CDATA[ +function cmp ($a, $b) { + return strcmp($a["gyumolcs"], $b["gyumolcs"]); +} + +$gyumolcsok[0]["gyumolcs"] = "citrom"; +$gyumolcsok[1]["gyumolcs"] = "alma"; +$gyumolcsok[2]["gyumolcs"] = "szõlõ"; + +usort($gyumolcsok, "cmp"); + +while (list ($key, $val) = each ($gyumolcsok)) { + echo "\$gyumolcsok[$key]: " . $value["gyumolcs"] . "\n"; +} +]]> + </programlisting> + </example> + </para> + <para> + Több dimenziós tömbökre alkalmazva $a és $b + az elsõ indexre mutató referenciákat fog tartalmazni. + </para> + <para> + Ez a példa a következõt írja ki: + </para> + <para> + <screen> +<![CDATA[ +$gyumolcsok[0]: alma +$gyumolcsok[1]: citrom +$gyumolcsok[2]: szõlõ +]]> + </screen> + </para> + <para> + <example> + <title> + Objektum tagfüggvényének (metódus) használata az <function>usort</function>-tal + </title> + <programlisting role="php"> +<![CDATA[ +class TestObj { + var $nev; + + function TestObj($nev) + { + $this->nev = $nev; + } + + /* ez statikus összehasonlító függvény: */ + function cmp_obj($a, $b) + { + $al = strtolower($a->nev); + $bl = strtolower($b->nev); + if ($al == $bl) return 0; + return ($al > $bl) ? +1 : -1; + } +} + +$a[] = new TestObj("c"); +$a[] = new TestObj("b"); +$a[] = new TestObj("d"); + +uasort($a, array ("TestObj", "cmp_obj")); + +foreach ($a as $elem) { + print $elem->nev."\n"; +} +]]> + </programlisting> + </example> + </para> + <para> + Ez a példa a következõt írja ki: + </para> + <para> + <screen> +<![CDATA[ +b +c +d +]]> + </screen> + </para> + <warning> + <para> + Néhány C könyvtárban (mint például a Solaris rendszerekben) a + gyorsrendezés alapjául szolgáló függvény a PHP összeomlását okozhatja, + ha az összehasonlító függvény nem következetes értéket ad vissza. + </para> + </warning> + <para> + Lásd még: <function>uasort</function>, + <function>uksort</function>, <function>sort</function>, + <function>asort</function>, + <function>arsort</function>,<function>ksort</function>, + <function>natsort</function> és <function>rsort</function>! + </para> + </refsect1> + </refentry> + +</reference> + +<!-- Keep this comment at the end of the file +Local variables: +mode: sgml +sgml-omittag:t +sgml-shorttag:t +sgml-minimize-attributes:nil +sgml-always-quote-attributes:t +sgml-indent-step:1 +sgml-indent-data:t +indent-tabs-mode:nil +sgml-parent-document:nil +sgml-default-dtd-file:"../../manual.ced" +sgml-exposed-tags:nil +sgml-local-catalogs:nil +sgml-local-ecat-files:nil +End: +vim600: syn=xml fen fdm=syntax fdl=2 si +vim: et tw=78 syn=sgml +vi: ts=1 sw=1 +-->
Index: phpdoc/hu/functions/array.xml diff -u /dev/null phpdoc/hu/functions/array.xml:1.3 --- /dev/null Thu Jan 3 06:32:50 2002 +++ phpdoc/hu/functions/array.xml Thu Jan 3 06:32:50 2002 @@ -0,0 +1,3694 @@ +<?xml version="1.0" encoding="iso-8859-2"?> +<!-- EN-Revision: 1.147 Maintainer: pgerzson Status: ready --> +<!-- CREDITS: zvaranka --> + +<reference id="ref.array"> + <title>Tömbkezelõ függvények</title> + <titleabbrev>Tömbök</titleabbrev> + <partintro> + <simpara> + Ezekkel a függvényekkel különféle módon változtathatod, befolyásolhatod + a tömböket. A tömbök elengedhetetlenek a változók sorozatának + tárolásához, rendezéséhez, igazgatásához és a változtatásához. + </simpara> + <simpara> + Az egy- és többdimenziós tömböket is támogatja, amelyeket + akár "manuálisan" vagy valamilyen függvénnyel is létrehozhatsz. + Vannak bizonyos adatbázis-kezelõ függvények, amelyek adatbázis-lekérdezések + alapján töltenek fel tömböket, és vannak amelyek tömböket adnak vissza. + </simpara> + <para> + Nézd át a <link linkend="language.types.array">Tömbök</link> fejezetet, + ahol részletes leírást találsz a PHP-s tömbök megvalósításáról és mûködésérõl. + </para> + <para> + Lásd még: <function>is_array</function>, <function>explode</function>, + <function>implode</function>, <function>split</function> + és <function>join</function>! + </para> + </partintro> + + <refentry id="function.array"> + <refnamediv> + <refname>array</refname> + <refpurpose> + létrehoz egy tömböt + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>array</function></funcdef> + <paramdef>mixed + <parameter><optional>...</optional></parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Egy paramétertömböt ad vissza. + A paramétereknek megadható az indexük is a =< operátorral. + </para> + <para> + <note> + <para> + Az <function>array</function> nyelvi építõelem tömbök létrehozására, + és nem szokványos függvény. + </para> + </note> + </para> + <para> + Az "index => érték" szintaxis - egymástól vesszõvel elválasztva - + meghatároz egy indexet a hozzátartozó értékkel. Az index lehet sztring + vagy egész szám is. Ha nincs index megadva, akkor egy automatikusan + generált egész szám lesz az elem indexe. (Az automatikus indexelés + 0-tól kezdõdik.) Ha az index egy egész szám, akkor a következõként + generált index az eddigi legnagyobb egész számú indextõl eggyel nagyobb + szám lesz. Figyelj arra, hogyha két azonos indexû elemet definiálsz, + akkor az utolsó felülírja az elsõt. + </para> + <para> + A következõ példák segítenek megérteni, hogyan lehet kétdimenziós tömböket + létrehozni, asszociatív tömbök kulcsait megadni, illetve hogyan lehet + helyeket kihagyni és folytatni numerikus indexelést. + <example> + <title> + <function>array</function> példa + </title> + <programlisting role="php"> +<![CDATA[ +$gyumolcsok = array ( + "gyümölcsök" => array ("a"=>"narancs", "b"=>"banán", "c"=>"alma"), + "számok" => array (1, 2, 3, 4, 5, 6), + "lyukak" => array ("elsõ", 5 => "második", "harmadik") +); +]]> + </programlisting> + </example> + </para> + <para> + <example> + <title>Automatikus indexelés az <function>array</function> "függvénnyel"</title> + <programlisting role="php"> +<![CDATA[ +$array = array( 1, 1, 1, 1, 1, 8=>1, 4=>1, 19, 3=>13); +print_r($array); +]]> + </programlisting> + </example> + ezt fogja kiírni: + <screen role="php"> +<![CDATA[ +Array +( + [0] => 1 + [1] => 1 + [2] => 1 + [3] => 13 + [4] => 1 + [8] => 1 + [9] => 19 +) +]]> + </screen> + Figyeld meg, hogy a 3. indexû elemet kétszer definiáltuk, és a végsõ + értéke a 13. A 4. elemet a 8. után hoztuk létre, és a következõ elemnek + (19-nek) generált index értéke 9, mivel a legnagyobb létezõ index a + tömbben a 8 volt. + </para> + <para> + Ez a példa egy olyan tömböt hoz létre, amelynek az indexelése 1-tõl + kezdõdik. + <example> + <title>1-tõl indexelt tömb létrehozása <function>array</function> "függvénnyel"</title> + <programlisting role="php"> +<![CDATA[ +$elsonegyedev = array(1 => 'Január', 'Február', 'Március'); +print_r($elsonegyedev); +]]> + </programlisting> + </example> + ezt írja ki: + <screen> +<![CDATA[ +Array +( + [1] => 'Január' + [2] => 'Február' + [3] => 'Március' +) +]]> + </screen> + </para> + <para> + Lásd még: <function>array_pad</function>, + <function>list</function> és + <function>range</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.array-change-key-case"> + <refnamediv> + <refname>array_change_key_case</refname> + <refpurpose>visszaad egy kis vagy nagybetûsre cserélt string indexû tömböt </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>array_change_key_case</function></funcdef> + <paramdef>array <parameter>input</parameter></paramdef> + <paramdef>int <parameter><optional>case</optional></parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + A <function>array_change_key_case</function> kis vagy nagybetûsre cseréli + az <parameter>input</parameter> tömb string típusú indexeit + A változtatást az elhagyható <parameter>case</parameter> paraméter + szabályozza, amelynek két állandót lehet átadni: + <constant>CASE_UPPER</constant> és + <constant>CASE_LOWER</constant>, az alapértelmezés a + <constant>CASE_LOWER</constant>. + A numerikus indexet változatlanul hagyja a függvény. + </para> + <example> + <title><function>array_change_key_case</function> példa</title> + <programlisting role="php"> +<![CDATA[ +$bemenet = array("ElSo" => 1, "MasODIk" => 4); +print_r(array_change_key_case($bemenet, CASE_UPPER); +]]> + </programlisting> + <para> + A fenti programrészlet a következõt írja ki: + <screen> +<![CDATA[ +Array +( + [ELSO] => 1 + [MASODIK] => 2 +) +]]> + </screen> + </para> + </example> + </refsect1> + </refentry> + + <refentry id="function.array-chunk"> + <refnamediv> + <refname>array_chunk</refname> + <refpurpose>feldarabolja a tömböt</refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>array_chunk</function></funcdef> + <paramdef>array <parameter>input</parameter></paramdef> + <paramdef>int <parameter>size</parameter></paramdef> + <paramdef>bool <parameter> + <optional>preserve_keys</optional> + </parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + A <function>array_chunk</function> feloszt egy tömböt több tömbre a + <parameter>size</parameter> értéke alapján. + A legutolsó tömbben elképzelhetõ, hogy ennél kevesebb elem szerepel. + A tömböket egy többdimenziós tömb elemeiként adja vissza, amely + 0-tól kezdve numerkius indexelt. + </para> + <para> + A lehetséges <parameter>preserve_keys</parameter> paraméter &true;-ra + állításával, kikényszerítheted, hogy az eredeti tömb indexeit + tartsák meg a visszaadott tömbdarabok. Ha &false;-ra állítod ezt a paramétert, + akkor minden tömbdarabban az elemek sorszámozása 0-tól újra kezdõdik. + Az alapértelmezés az utóbbi: &false;. + </para> + <example> + <title><function>array_chunk</function> példa</title> + <programlisting role="php"> +<![CDATA[ +$input_array = array('a', 'b', 'c', 'd', 'e'); +print_r(array_chunk($input_array, 2)); +print_r(array_chunk($input_array, 2, TRUE)); +]]> + </programlisting> + <para> + A fenti program kimenete: + <screen> +<![CDATA[ +Array +( + [0] => Array + ( + [0] => a + [1] => b + ) + + [1] => Array + ( + [0] => c + [1] => d + ) + + [2] => Array + ( + [0] => e + ) + +) +Array +( + [0] => Array + ( + [0] => a + [1] => b + ) + + [1] => Array + ( + [2] => c + [3] => d + ) + + [2] => Array + ( + [4] => e + ) + +) +]]> + </screen> + </para> + </example> + </refsect1> + </refentry> + + <refentry id="function.array-count-values"> + <refnamediv> + <refname>array_count_values</refname> + <refpurpose>összeszámol minden értéket a tömbben</refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>array_count_values</function></funcdef> + <paramdef>array <parameter>input</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Az <function>array_count_values</function> olyan tömböt ad vissza, + amelynek a kulcsai az <parameter>input</parameter> tömb értékei és az + <parameter>input</parameter> tömbbeli elõfordulási gyakoriságuk a + hozzájuk tartozó értékek. + </para> + <para> + <example> + <title><function>array_count_values</function> példa</title> + <programlisting role="php"> +<![CDATA[ +$tomb = array (1, "hello", 1, "világ", "hello"); +array_count_values ($tomb); // visszaadja array (1=>2, "hello"=>2, "világ"=>1) +]]> +</programlisting> + </example> + </para> + </refsect1> + </refentry> + + <refentry id="function.array-diff"> + <refnamediv> + <refname>array_diff</refname> + <refpurpose>tömbök közti különbséget számolja ki</refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>array_diff</function></funcdef> + <paramdef>array <parameter>array1</parameter></paramdef> + <paramdef>array <parameter>array2</parameter></paramdef> + <paramdef>array + <parameter> + <optional> ...</optional> + </parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + Az <function>array_diff</function> olyan tömböt ad vissza, amely + azokat az elemeket tartalmazza, amit csak <parameter>array1</parameter>-ben + szerepelnek és semelyik másik paraméterként átadott tömbben. + Az indexelést megõrzi. + </para> + <para> + <example> + <title><function>array_diff</function> példa</title> + <programlisting role="php"> +<![CDATA[ +$array1 = array ("a" => "zöld", "vörös", "kék", "vörös"); +$array2 = array ("b" => "zöld", "sárga", "piros"); +$result = array_diff ($array1, $array2); +]]> + </programlisting> + </example> + </para> + <para> + Ez azt eredményezi, hogy a <varname>$result</varname> értéke + <literal>array ("kék");</literal> lesz. Az <varname>$array1</varname> -ben elõforduló + többszörös értékeket ugyanúgy kezeli a függvény. + </para> + <note> + <simpara> + Két elem akkor és csakis akkor tekinthetõ egyenlõnek, ha + <literal>(string) $elem1 === (string) $elem2</literal>, + azaz ha sztring ábrázolásuk megegyezik. + <!-- TODO: example of it... --> + </simpara> + </note> + <warning> + <simpara> + PHP 4.0.4-ben hibásan mûködött! + <!-- TODO: when exactly was this broken?... --> + </simpara> + </warning> + <para> + Lásd még: <function>array_intersect</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.array-filter"> + <refnamediv> + <refname>array_filter</refname> + <refpurpose> + megsszûri a tömb elemeit egy függvény visszahívásával + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>array_filter</function></funcdef> + <paramdef>array <parameter>input</parameter></paramdef> + <paramdef>mixed + <parameter> + <optional>callback</optional> + </parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + Az <function>array_filter</function> olyan tömbbel tér vissza, amely az + <parameter>input</parameter> tömb összes ún. 'callback' függvény által + megszûrt elemét tartalmazza. Ez azt jelenti, hogy a függvény az + <parameter>input</parameter> minden elemére meghívja ezt a függvényt, + amely visszatérési értékeként megadja, hogy az elem átment a szûrõn + vagy sem. Ha az <parameter>input</parameter> tömb asszociatív, akkor a + kulcsok megõrzásre kerülnek. + </para> + <para> + <example> + <title><function>array_filter</function> példa</title> + <programlisting role="php"> +<![CDATA[ +function paratlan($var) { + return ($var % 2 == 1); +} + +function paros($var) { + return ($var % 2 == 0); +} + +$tomb1 = array ("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5); +$tomb2 = array (6, 7, 8, 9, 10, 11, 12); + +$paratlanok = array_filter($tomb1, "paratlan"); +$parosok = array_filter($tomb2, "paros"); +]]> + </programlisting> + </example> + </para> + <para> + Ezután a <varname>$paratlan</varname> tömb így fog kinézni: + <literal>array ("a"=>1, "c"=>3, "e"=>5);</literal>, + a <varname>$paros</varname> pedig így: + <literal>array (6, 8, 10, 12);</literal>, + </para> + ¬e.func-callback; + <para> + Lásd még: <function>array_map</function> és + <function>array_reduce</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.array-flip"> + <refnamediv> + <refname>array_flip</refname> + <refpurpose>felcseréli a tömb elemeit és kulcsait</refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>array_flip</function></funcdef> + <paramdef>array <parameter>trans</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Az <function>array_flip</function> felcseréli a tömb elemeit és kulcsait, + úgyhogy a <parameter>trans</parameter> tömb értékei lesznek az új kulcsok és + a kulcsai pedig a hozzátartozó értékek. + Látható, hogy <type>array</type>-t ad vissza. + </para> + <para> + Figyelj arra, hogy a <parameter>trans</parameter> elemértékeinek + érvényes kulcsoknak kell lenniük, azaz vagy <type>integer</type> vagy + <type>string</type> típusúaknak. Egy figyelmeztetõ "nem fatális" hibaüzenetet + (warning) küld, ha az elemérték típusa nem megfelelõ, + és a kérdéses kulcs - érték pár <emphasis>nem lesz felcserélve</emphasis>. + </para> + <para> + Ha egy érték többször szerepel, akkor a legutolsó kulcsot fogja használni + ahhoz az értékhez, és a többit figyelmen kívül hagyja. + </para> + <para> + Az <function>array_flip</function> &false;-tal tér vissza, sikertelenség esetén. + </para> + <para> + <example> + <title><function>array_flip</function> példa</title> + <programlisting role="php"> +<![CDATA[ +$trans = array_flip ($trans); +$original = strtr ($str, $trans); +]]> + </programlisting> + </example> + </para> + <para> + <example> + <title><function>array_flip</function> példa az (érték)ütközésre</title> + <programlisting role="php"> +<![CDATA[ +$trans = array ("a" => 1, "b" => 1, "c" => 2); +$trans = array_flip ($trans); +// most $trans = array(1 => "b", 2 => "c"); +]]> + </programlisting> + </example> + </para> + </refsect1> + </refentry> + + <refentry id="function.array-fill"> + <refnamediv> + <refname>array_fill</refname> + <refpurpose>feltölt egy tömböt egy megadott értékkel</refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>array_fill</function></funcdef> + <paramdef>int <parameter>start_index</parameter></paramdef> + <paramdef>int <parameter>num</parameter></paramdef> + <paramdef>mixed <parameter>value</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Az <function>array_fill</function> a <parameter>num</parameter> + paraméterben megadott számú elemmel egy tömböt hoz létre, amelyben + minden elem <parameter>value</parameter> értékû és az indexelésük + <parameter>start_index</parameter>-tõl kezdõdik. + </para> + <para> + <example> + <title><function>array_fill</function> példa</title> + <programlisting role="php"> +<![CDATA[ +$a = array_fill(5, 6, 'banán'); + +/* +most $a -ban a következõ elemek vannak: + +$a[5] = "banán"; +$a[6] = "banán"; +$a[7] = "banán"; +$a[8] = "banán"; +$a[9] = "banán"; +$a[10] = "banán"; +*/ +]]> + </programlisting> + </example> + </para> + </refsect1> + </refentry> + + <refentry id="function.array-intersect"> + <refnamediv> + <refname>array_intersect</refname> + <refpurpose>kiszámítja a tömbök metszetét</refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>array_intersect</function></funcdef> + <paramdef>array <parameter>array1</parameter></paramdef> + <paramdef>array <parameter>array2</parameter></paramdef> + <paramdef>array + <parameter> + <optional> ...</optional> + </parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + Az <function>array_intersect</function> olyan tömböt ad vissza, amely + az <parameter>array1</parameter> azon elemeit tartalmazza, amelyek + minden paraméterként átadott tömbben megtalálhatók. + Az indexelést megõrzi. + </para> + <para> + <example> + <title><function>array_intersect</function> példa</title> + <programlisting role="php"> +<![CDATA[ +$array1 = array ("a" => "zöld", "vörös", "kék", "vörös"); +$array2 = array ("b" => "zöld", "sárga", "piros"); +$result = array_intersect ($array1, $array2); +]]> + </programlisting> + </example> + </para> + <para> + Ez a <varname>$result</varname> tömbben az <literal>array ("a" + => "zöld", "piros");</literal> értéket eredményezi. + </para> + <note> + <simpara> + Két elem akkor és csakis akkor tekinthetõ egyenlõnek, ha + <literal>(string) $elem1 === (string) $elem2</literal>, + azaz ha sztring ábrázolásuk megegyezik. + <!-- TODO: example of it... --> + </simpara> + </note> + <warning> + <simpara> + PHP 4.0.4-ben hibásan mûködött! + <!-- TODO: when exactly was this broken?... --> + </simpara> + </warning> + <para> + Lásd még: <function>array_diff</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.array-key-exists"> + <refnamediv> + <refname>array_key_exists</refname> + <refpurpose>ellenõrzi a keresett index/kulcs létezését a tömbben</refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>bool <function>array_key_exists</function></funcdef> + <paramdef>mixed <parameter>key</parameter></paramdef> + <paramdef>array <parameter>search</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Az <function>array_key_exists</function> &true;-val tér vissza, ha + az adott <parameter>key</parameter> be van állítva a + <parameter>search</parameter> tömbben. A <parameter>key</parameter> bármilyen + lehetséges tömbindex érték lehet. + </para> + <para> + <example> + <title><function>array_key_exists</function> példa</title> + <programlisting role="php"> +<![CDATA[ +$keress = array("elsõ" => 1, "második" => 4); +if ( array_key_exists("elsõ", $keress) ) { + echo "Az 'elsõ' indexû elem a tömbben van."; +} +]]> + </programlisting> + </example> + </para> + <note> + <simpara> + A PHP 4.0.6-ban a függvény neve <function>key_exists</function> volt. + </simpara> + </note> + <para> + Lásd még: <function>isset</function>! + </para> + </refsect1> + + </refentry> + <refentry id="function.array-keys"> + <refnamediv> + <refname>array_keys</refname> + <refpurpose>visszaadja egy tömb összes indexét</refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>array_keys</function></funcdef> + <paramdef>array <parameter>input</parameter></paramdef> + <paramdef>mixed + <parameter> + <optional>search_value</optional> + </parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + Az <function>array_keys</function> az <parameter>input</parameter> tömb + összes - numerikus és sztring - típusú indexét (kulcsát) adja vissza. + </para> + <para> + Ha az elhagyható <parameter>search_value</parameter> is meg an adva, + akkor csak azokat a kulcsokkal tér vissza, amelyek a megadott értékhez + tartoznak. Egyébként az <parameter>input</parameter> összes kulcsa + átadásra kerül. + </para> + <para> + <example> + <title><function>array_keys</function> példa</title> + <programlisting role="php"> +<![CDATA[ +$tomb = array (0 => 100, "szin" => "piros"); +array_keys ($tomb); // visszatérési érték: array (0, "szin") + +$tomb = array ("kék", "piros", "zöld", "kék", "kék"); +array_keys ($tomb, "kék"); // visszatérési érték: array (0, 3, 4) + +$tomb = array ("szín" => array("kék", "piros", "zöld"), "méret" => array("kicsi", "közepes", "nagy")); +array_keys ($tomb); // visszatérési érték: array ("color", "size") +]]> + </programlisting> + </example> + </para> + <note> + <para> + Ez a függvény PHP 4-tõl használható, alább látható egy megvalósítása azok számára, + akik még mindig PHP 3-t használnak. + <example> + <title><function>array_keys</function> megvalósítása PHP 3-ban</title> + <programlisting role="php"> +<![CDATA[ +function array_keys ($arr, $term="") { + $t = array(); + while ( list($k,$v) = each($arr) ) { + if ( $term && $v != $term ) { + continue; + } + $t[] = $k; + } + return $t; +} +]]> + </programlisting> + </example> + </para> + </note> + <para> + Lásd még: <function>array_values</function>! + </para> + </refsect1> + + </refentry> + <refentry id="function.array-map"> + <refnamediv> + <refname>array_map</refname> + <refpurpose> + egy függvényt alkalmaz minden megadott tömb elemére + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>array_map</function></funcdef> + <paramdef>mixed <parameter>callback</parameter></paramdef> + <paramdef>array <parameter>arr1</parameter></paramdef> + <paramdef>array + <parameter> + <optional>arr2...</optional> + </parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + Az <function>array_map</function> olyan tömböt ad vissza, amelyben + az <parameter>arr1</parameter> tömb <parameter>callback</parameter> nevû függvény + által kiszámolt értékei vannak. A <parameter>callback</parameter> függvény + fogadható paraméterek száma meg kell egyezzen az + <function>array_map</function>-nak átadott tömbök számával. + </para> + <para> + <example> + <title><function>array_map</function> példa</title> + <programlisting role="php"> +<![CDATA[ +function kob($n) { + return $n*$n*$n; +} + +$a = array(1, 2, 3, 4, 5); +$b = array_map("kob", $a); +]]> + </programlisting> + </example> + </para> + <para> + Így a <varname>$b</varname> tömb értéke + <literal>array (1, 8, 27, 64, 125);</literal> lesz. + </para> + <para> + <example> + <title><function>array_map</function> - több tömb használata</title> + <programlisting role="php"> +<![CDATA[ +function ird_spanyolul($n, $m) { + return "A(z) $n spanyolul: $m "; +} + +function osszerendel_spanyolul($n, $m) { + return array ($n => $m); +} + +$a = array(1, 2, 3, 4, 5); +$b = array("uno", "dos", "tres", "cuatro", "cinco"); + +$c = array_map("ird_spanyolul", $a, $b); + +print_r($c); + +// kiírja, hogy: +// Array +// ( +// [0] => A(z) 1 spanyolul: uno +// [1] => A(z) 2 spanyolul: dos +// [2] => A(z) 3 spanyolul: tres +// [3] => A(z) 4 spanyolul: cuatro +// [4] => A(z) 5 spanyolul: cinco +// ) + +$d = array_map("osszerendel_spanyolul", $a , $b); + +print_r($d); + +// kiírja, hogy: +// Array +// ( +// [0] => Array +// ( +// [1] => uno +// ) +// +// [1] => Array +// ( +// [2] => dos +// ) +// +// [2] => Array +// ( +// [3] => tres +// ) +// +// [3] => Array +// ( +// [4] => cuatro +// ) +// +// [4] => Array +// ( +// [5] => cinco +// ) +// +// ) +]]> + </programlisting> + </example> + </para> + <para> + Több tömb használata esetén a tömbök hosszának meg kell egyeznie, + mert a meghívott <parameter>callback</parameter> függvény + párhuzomsan halad végig rajtuk mindig a megfelelõ elemeket használva fel. + Ha a tömbök nem megegyezõ méretûek, akkor a legrövidebb üres elemekkel + lesznek feltöltve. + </para> + <para> + Ennek a függvénynek érdekes felhasználási módja, hogy tömböket tartalmazó + tömböt lehet vele létrehozni, ha a <parameter>callback</parameter> + függvényként a &null; értéket adjuk át. + </para> + <para> + <example> + <title>tömböket tartalmazó tömb létrehozása</title> + <programlisting role="php"> +<![CDATA[ +$a = array(1, 2, 3, 4, 5); +$b = array("egy", "kettõ", "három", "négy", "öt"); +$c = array("uno", "dos", "tres", "cuatro", "cinco"); + +$d = array_map(null, $a, $b, $c); +print_r($d); + +// kiírja, hogy: +// Array +// ( +// [0] => Array +// ( +// [0] => 1 +// [1] => egy +// [2] => uno +// ) +// +// [1] => Array +// ( +// [0] => 2 +// [1] => kettõ +// [2] => dos +// ) +// +// [2] => Array +// ( +// [0] => 3 +// [1] => három +// [2] => tres +// ) +// +// [3] => Array +// ( +// [0] => 4 +// [1] => négy +// [2] => cuatro +// ) +// +// [4] => Array +// ( +// [0] => 5 +// [1] => öt +// [2] => cinco +// ) +// +// ) +]]> + </programlisting> + </example> + </para> + <para> + Lásd még: <function>array_filter</function> és + <function>array_reduce</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.array-merge"> + <refnamediv> + <refname>array_merge</refname> + <refpurpose> egyesít két vagy több tömböt</refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>array_merge</function></funcdef> + <paramdef>array <parameter>array1</parameter></paramdef> + <paramdef>array <parameter>array2</parameter></paramdef> + <paramdef>array + <parameter> + <optional>...</optional> + </parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + Az <function>array_merge</function> egyesíti két vagy több tömb elemeit + úgy, hogy a második tömb elemeit hozzáfûzi az elsõéhez, és visszadja az + eredményül kapott tömböt. + </para> + <para> + Ha a megadott tömbökben ugyanolyan string kulcsok vannak, akkor a késõbbi + felülírja az elõzõt. Ha a tömböknek ugyanolyan numerikus indexei vannak, + akkor nem ez történik, minden új értéket a tömbbe illeszt. + </para> + <para> + <example> + <title><function>array_merge</function> példa</title> + <programlisting role="php"> +<![CDATA[ +$tomb1 = array ("szín" => "piros", 2, 4); +$tomb2 = array ("a", "b", "szín" => "zöld", "alak" => "trapéz", 4); +$eredmeny = array_merge ($tomb1, $tomb2); +]]> + </programlisting> + </example> + </para> + <para> + Az eredményül kapott tömb az <literal>array("szín" => "zöld", 2, 4, + "a", "b", "alak" => "trapézd", 4)</literal> lesz. + </para> + <para> + Lásd még: <function>array_merge_recursive</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.array-merge-recursive"> + <refnamediv> + <refname>array_merge_recursive</refname> + <refpurpose>rekurzívan egyesít két vagy több tömböt</refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>array_merge_recursive</function></funcdef> + <paramdef>array <parameter>array1</parameter></paramdef> + <paramdef>array <parameter>array2</parameter></paramdef> + <paramdef>array + <parameter> + <optional>...</optional> + </parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + Az <function>array_merge_recursive</function> egyesíti két vagy több tömb + elemeit úgy, hogy az egyik elemeit a másik után fûzi, és visszadja az + eredményül kapott tömböt. + </para> + <para> + Ha a megadott tömbökben ugyanolyan string kulcsok vannak, akkor az ezekhez + tartozó elemértékeket egy tömbbe gyûjti össze. Ezt rekurzívan teszi a függvény, + tehát ha az elemek egyike ugyancsak tömb, akkor ennek a tömbnek az elemeire + is hasonlóképp lefut az egyesítõ algoritmus. + Ha viszont a numerikus indexek egyeznek meg, akkor a késõbbi nem felülírja a + korábbi értéket, hanem azok után fûzi. + </para> + <para> + <example> + <title><function>array_merge_recursive</function> példa</title> + <programlisting role="php"> +<![CDATA[ +$tomb1 = array ("szín" => array ("kedvenc" => "piros"), 5); +$tomb2 = array (10, "szín" => array ("kedvenc" => "zöld", "kék")); +$result = array_merge_recursive ($tomb1, $tomb2); +]]> + </programlisting> + </example> + </para> + <para> + Az eredményül kapott tömb : <literal>array ("szín" => array + ("kedvenc" => array ("piros", "zöld"), "kék"), 5, 10)</literal>. + </para> + <para> + Lásd még: <function>array_merge</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.array-multisort"> + <refnamediv> + <refname>array_multisort</refname> + <refpurpose> + egyszerre több tömböt vagy egy többdimenziós tömböt rendez + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>bool <function>array_multisort</function></funcdef> + <paramdef>array <parameter>ar1</parameter></paramdef> + <paramdef>mixed + <parameter><optional>arg</optional></parameter> + </paramdef> + <paramdef>mixed + <parameter><optional>...</optional></parameter> + </paramdef> + <paramdef>array + <parameter><optional>...</optional></parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + Az <function>array_multisort</function> arra hasunálható, hogy egyszerre + több tömböt vagy egy többdimenzós tömböt rendezzen sorba valamelyik + dimenziója szerint. A kulcsokat megõrzi a rendezés során. + </para> + <para> + A megadott tömböket egy képzeletbeli, sorok alapján rendezendõ táblázat + oszlopainak tekinthetõk. Ez hasonlít az SQL ORDER BY cikkelyének feladatára. + Ez elsõ tömb, ami alapján elõször. Az ebben a tömbben levõ ugyanolyan sorok (elemek) + a következõként megadott tömb szerint lesznek tovább rendezve, és így tovább + végig a tömbökön. + </para> + <para> + Ennek a függvénynek a argumentumlistája kicsit szokatlan, de nagyon rugalmas. + A legelsõ paraméternek egy tömbnel kell lennie, ezután minden paraméter lehet + egy tömb vagy egy a következõ rendezést szabályzó jelzõértékek közül. + </para> + <para> + Sorrendi jelzõk: + <itemizedlist> + <listitem> + <simpara>SORT_ASC - növekvõ sorrendbe rendez</simpara> + </listitem> + <listitem> + <simpara>SORT_DESC - csökkenõ sorrendbe rendez</simpara> + </listitem> + </itemizedlist> + </para> + <para> + Rendezési jelzõk: + <itemizedlist> + <listitem> + <simpara>SORT_REGULAR - megszokott módon hasonlítja össze az elemeket</simpara> + </listitem> + <listitem> + <simpara>SORT_NUMERIC - számként hasonlítja össze az elemeket</simpara> + </listitem> + <listitem> + <simpara>SORT_STRING - szövegként hasonlítja össze az elemeket</simpara> + </listitem> + </itemizedlist> + </para> + <para> + Nem lehet két ugyanolyan típusú jelzõt egymás után megadni. Ezek a jelzõk csak a + közvetlenül elõtük megadott tömb szerinti rendezést befolyásolják, minden tömb + paraméternél az alapértelmezés lép életbe, ami a SORT_ASC és SORT_REGULAR. + </para> + <para> + &true;-val tér vissza, ha sikerült a rendezés, egyébként &false;-szal. + </para> + <para> + <example> + <title>Több tömb alapján történõ rendezés</title> + <programlisting role="php"> +<![CDATA[ +$ar1 = array ("10", 100, 100, "a"); +$ar2 = array (1, 3, "2", 1); +array_multisort ($ar1, $ar2); +]]> + </programlisting> + </example> + </para> + <para> + Ebben a példában a rendezés után az elsõ tömbben 10,"a", 100, 100 lesz + A másodikban 1, 1, "2", 3. A második tömb elemei az elsõ tömb megegyezõ + elemeinek megfelelõen (100, 100) szintén rendezettek. + </para> + <para> + <example> + <title>Többdimenziós tömbök rendezése</title> + <programlisting role="php"> +<![CDATA[ +$ar = array (array ("10", 100, 100, "a"), array (1, 3, "2", 1)); +array_multisort ($ar[0], SORT_ASC, SORT_STRING, + $ar[1], SORT_NUMERIC, SORT_DESC); +]]> + </programlisting> + </example> + </para> + <para> + Ebben a példában a rendezés után az elsõ tömbben 10, 100, 100, "a" lesz + - szövegként növekvõ sorrendbe rendezve. A másodikban 1, 1, 3, "2" - számként + csökkenõ sorrendbe rendezve. + </para> + </refsect1> + </refentry> + + <refentry id="function.array-pad"> + <refnamediv> + <refname>array_pad</refname> + <refpurpose> + adott méretûre bõvít és tölt fel egy tömböt + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>array_pad</function></funcdef> + <paramdef>array <parameter>input</parameter></paramdef> + <paramdef>int <parameter>pad_size</parameter></paramdef> + <paramdef>mixed <parameter>pad_value</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Az <function>array_pad</function> az <parameter>input</parameter> tömb + <parameter>pad_size</parameter>paraméterben megadott méretre bõvített másolatát + adja vissza, amelyben az új elemeket a <parameter>pad_value</parameter> értékkel töltötte fel. + Ha a <parameter>pad_size</parameter> pozitív szám, akkor a tömb végére kerülnek az új elemek, + ha negatív, akkor az elejére. Ha a <parameter>pad_size</parameter> abszolút értéke kisebb vagy + egyenlõ a tömb méretével, akkor az <parameter>input</parameter> tömbön nem történik változtatás. + </para> + <para> + <example> + <title> + <function>array_pad</function> példa</title> + <programlisting role="php"> +<![CDATA[ +$input = array (12, 10, 9); + +$result = array_pad ($input, 5, 0); +// array (12, 10, 9, 0, 0) + +$result = array_pad ($input, -7, -1); +// array (-1, -1, -1, -1, 12, 10, 9) + +$result = array_pad ($input, 2, "noop"); +// nincs kitöltés +]]> + </programlisting> + </example> + </para> + </refsect1> + </refentry> + + <refentry id="function.array-pop"> + <refnamediv> + <refname>array_pop</refname> + <refpurpose>kivesz egy elemet a tömb végérõl</refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>mixed <function>array_pop</function></funcdef> + <paramdef>array <parameter>array</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Az <function>array_pop</function> kiveszi az <parameter>array</parameter> + tömbbõl annak utolsó elemét, és ezt adja vissza. + Ha az <parameter>array</parameter> tömb üres vagy nem tömb, akkor + &null;-lal tér vissza. + </para> + <para> + <example> + <title><function>array_pop</function> példa</title> + <programlisting role="php"> +<![CDATA[ +$verem = array ("narancs", "alma", "málna"); +$gyumolcs = array_pop ($verem); +]]> + </programlisting> + </example> + </para> + <para> + Ezután a <varname>$verem</varname>-nek csak két eleme lesz: + "narancs" és "alma", és a <varname>$gyumolcs</varname> változó értéke + "málna" lesz. + </para> + &return.falseproblem; + <para> + Lásd még: <function>array_push</function>, + <function>array_shift</function> és + <function>array_unshift</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.array-push"> + <refnamediv> + <refname>array_push</refname> + <refpurpose> + egy vagy több elemet illeszt a tömb végére + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>int <function>array_push</function></funcdef> + <paramdef>array <parameter>array</parameter></paramdef> + <paramdef>mixed <parameter>var</parameter></paramdef> + <paramdef>mixed + <parameter><optional>...</optional></parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + Az <function>array_push</function> az <parameter>array</parameter> tömböt + veremként kezeli, és annak a tetejére - a tömb végére - teszi a + paraméterként megadott értékeket. Az <parameter>array</parameter> tömb + mérete a hozzáfûzött elemek számával fog nõni. Ennek ugyanaz a hatása, + mintha a : + <programlisting role="php"> +<![CDATA[ +$array[] = $var; +]]> + </programlisting> + kódot ismételnéd meg mindenegyes <parameter>var</parameter> paraméterre. + </para> + <para> + A tömbbeli elemek új számával tér vissza. + </para> + <para> + <example> + <title><function>array_push</function> példa</title> + <programlisting role="php"> +<![CDATA[ +$verem = array (1, 2); +array_push ($verem, "+", 3); +]]> + </programlisting> + </example> + </para> + <para> + E példában a <varname>$verem</varname> tömbnek 4 eleme lesz: + 1, 2, "+" és 3. + </para> + <para> + Lásd még: <function>array_pop</function>, + <function>array_shift</function> és + <function>array_unshift</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.array-rand"> + <refnamediv> + <refname>array_rand</refname> + <refpurpose> + véletlenszerûen egy vagy több elemet hoz elõ a tömbbõl + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>mixed <function>array_rand</function></funcdef> + <paramdef>array <parameter>input</parameter></paramdef> + <paramdef>int + <parameter><optional>num_req</optional></parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + Az <function>array_rand</function> különösen akkor hasznos, ha egy vagy + több tömbbeli elemet kell véletlenszerûen kiválasztani. A függvény az + <parameter>input</parameter> tömbbõl az elhagyható + <parameter>num_req</parameter> paraméterben megadott számú elemet + választja ki és adja vissza. A kívánt elemek száma alapértelmezás szerint + 1. + </para> + <para> + Ha csak egy elemet választ ki, akkor az <function>array_rand</function> + ennek az elemnek az indexével tér vissza. Több elem esetén ezeknek az + indexeibõl alkotott tömbbel. Ezzel a megoldással kulcsokat és + elemértékeket is véletlenszerûen ki lehet választani egy tömbbõl. + </para> + <para> + Az <function>srand</function> függvényt meg kell hívni, hogy + inicializálja a véletlenszám-generátort. + </para> + <para> + <example> + <title><function>array_rand</function> példa</title> + <programlisting role="php"> +<![CDATA[ +srand ((float) microtime() * 10000000); +$input = array ("Neo", "Morpheus", "Trinity", "Cypher", "Tank"); +$rand_keys = array_rand ($input, 2); +print $input[$rand_keys[0]]."\n"; +print $input[$rand_keys[1]]."\n"; +]]> + </programlisting> + </example> + </para> + </refsect1> + </refentry> + + <refentry id="function.array-reverse"> + <refnamediv> + <refname>array_reverse</refname> + <refpurpose> + tömb fordított sorrendû elemeivel tér vissza + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>array_reverse</function></funcdef> + <paramdef>array <parameter>array</parameter></paramdef> + <paramdef>bool <parameter><optional>preserve_keys</optional></parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Az <function>array_reverse</function> veszi az <parameter>array</parameter> + tömböt, és visszaad egy olyan tömböt,amelyben elemek fordított sorrendben + szerepelnek. Ha <parameter>preserve_keys</parameter> értéke &true;, akkor + megõrzi az elemek indexelését a visszaadandó tömbben. + </para> + <para> + <example> + <title><function>array_reverse</function> példa</title> + <programlisting role="php"> +<![CDATA[ +$bemenet = array ("php", 4.0, array ("zöld", "piros")); +$eredmeny = array_reverse ($bemenet); +$indexelt_eredmeny = array_reverse ($bemenet, TRUE); +]]> + </programlisting> + </example> + </para> + <para> + Ezután mind <varname>$eredmeny</varname> és a + <varname>$indexelt_bemenet</varname> tömb így néz ki: + <literal>array(array ("zöld", "piros"), 4.0, "php")</literal>, ám + a <literal>"php"</literal> megmaradt az + <varname>$indexelt_bemenet[0]</varname> elemnek. + </para> + <note> + <para> + A második paraméter PHP 4.0.3-tõl használható. + </para> + </note> + </refsect1> + </refentry> + + <refentry id="function.array-reduce"> + <refnamediv> + <refname>array_reduce</refname> + <refpurpose> + elemi értékre csökkenti a tömböt tetszõleges függvény meghívásával + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>mixed <function>array_reduce</function></funcdef> + <paramdef>array <parameter>input</parameter></paramdef> + <paramdef>mixed <parameter>callback</parameter></paramdef> + <paramdef>int + <parameter><optional>initial</optional></parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + Az <function>array_reduce</function> ismétlõdve meghívja a + <parameter>callback</parameter> függvényt + az <parameter>input</parameter> tömb elemeivel paraméterként, azért hogy + végül egy elemi értékké alakítsa át a tömböt. Az elhagyható + <parameter>intial</parameter> megadásával beállítható egy tetszõleges + kezdõ érték a folyamat legelején. Ha üres a tömb, akkor ez lesz a + visszadott érték is. + </para> + <para> + <example> + <title><function>array_reduce</function> példa</title> + <programlisting role="php"> +<![CDATA[ +function rsum($v, $w) { + $v += $w; + return $v; +} + +function rmul($v, $w) { + $v *= $w; + return $v; +} + +$a = array(1, 2, 3, 4, 5); +$x = array(); +$b = array_reduce($a, "rsum"); +$c = array_reduce($a, "rmul", 10); +$d = array_reduce($x, "rsum", 1); +]]> + </programlisting> + </example> + </para> + <para> + Ennek eredménye: + <varname>$b</varname> = <literal>15</literal>, + <varname>$c</varname> = <literal>1200</literal> (= 1*2*3*4*5*10) és + <varname>$d</varname> = <literal>1</literal>. + </para> + <para> + Lásd még: <function>array_filter</function> és + <function>array_map</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.array-shift"> + <refnamediv> + <refname>array_shift</refname> + <refpurpose> + kivesz egy elemet a tömb elejérõl + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>mixed <function>array_shift</function></funcdef> + <paramdef>array <parameter>array</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Az <function>array_shift</function> kilépteti a tömb elsõ elemét + <parameter>array</parameter>, és ezt adja vissza. Az + <parameter>array</parameter> tömb eggyel kevesebb elemet fog tartalmazni, + és minden eleme eggyel elõrébb (elsõ index felé) tolódik. + Ha a tömb üres volt, akkor &null;-lal tér vissza. + </para> + <para> + <example> + <title><function>array_shift</function> példa</title> + <programlisting role="php"> +<![CDATA[ +$args = array ("-v", "-f"); +$opt = array_shift ($args); +]]> + </programlisting> + </example> + </para> + <para> + Ez azt eredményezi, hogy <varname>$args</varname> egy eleme marad: + "-f", és a <varname>$opt</varname> értéke "-v" lesz. + </para> + <para> + Lásd még: <function>array_unshift</function>, + <function>array_push</function> és + <function>array_pop</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.array-slice"> + <refnamediv> + <refname>array_slice</refname> + <refpurpose>Extract a slice of the array</refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>array_slice</function></funcdef> + <paramdef>array <parameter>array</parameter></paramdef> + <paramdef>int <parameter>offset</parameter></paramdef> + <paramdef>int + <parameter><optional>length</optional></parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + Az <function>array_slice</function> függvény az + <parameter>array</parameter> tömb <parameter>offset</parameter> és + <parameter>length</parameter> paraméterek által meghatározott + elemsorozatával tér vissza. + </para> + <para> + Pozitív <parameter>offset</parameter> esetén, az elemsorozat + ennyiedik sorszámú elemtõl kezdõdik, negatív <parameter>offset</parameter> + esetén az <parameter>array</parameter> tömb végétõl visszafelé számolva + ennyiedik elemtõl kezdõdik. + </para> + <para> + Ha a <parameter>length</parameter> meg van adva és pozitív, akkor az + elemsorozatba ennyi darab elem kerül bele. Negatív + <parameter>length</parameter> esetén az elemsorozat az + <parameter>array</parameter> tömb vége elõtt ennyi darab elemmel "áll + meg", amely azt jelenti, hogy az ezután következõ elemek nem kerülnek bele + a sorozatba. Ha nincs megadva a <parameter>length</parameter>, akkor + az <parameter>offset</parameter> által meghatározott ponttól + kezdve a tömb végéig minden elem belekerül a sorozatba. + </para> + <para> + <example> + <title><function>array_slice</function> példák</title> + <programlisting role="php"> +<![CDATA[ +$input = array ("a", "b", "c", "d", "e"); + // visszatérési értékek +$output = array_slice ($input, 2); // "c", "d", "e" +$output = array_slice ($input, 2, -1); // "c", "d" +$output = array_slice ($input, -2, 1); // "d" +$output = array_slice ($input, 0, 3); // "a", "b", "c" +]]> + </programlisting> + </example> + </para> + <para> + Lásd még: <function>array_splice</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.array-splice"> + <refnamediv> + <refname>array_splice</refname> + <refpurpose> + lecseréli a tömb egy részét + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>array_splice</function></funcdef> + <paramdef>array <parameter>input</parameter></paramdef> + <paramdef>int <parameter>offset</parameter></paramdef> + <paramdef>int <parameter><optional>length</optional></parameter></paramdef> + <paramdef>array <parameter><optional>replacement</optional></parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Az <function>array_splice</function> eltávolítja az + <parameter>input</parameter> tömb <parameter>offset</parameter> é + <parameter>length</parameter> paraméterek által meghatározott + sorozatát, és helyébe - ha meg van adva - a + <parameter>replacement</parameter> tömböt illeszti. + </para> + <para> + Pozitív <parameter>offset</parameter> esetén, a törlendõ elemsorozat + ennyiedik sorszámú elemtõl kezdõdik, negatív <parameter>offset</parameter> + esetén az <parameter>array</parameter> tömb végétõl visszafelé számolva + ennyiedik elemtõl kezdõdik. + </para> + <para> + Ha nincs megadva a <parameter>length</parameter>, akkor az + <parameter>offset</parameter> által meghatározott ponttól kezdve a tömb + végéig minden elemet eltávolít. Ha a <parameter>length</parameter> meg + van adva és pozitív, akkor ennyi darab elem kerül törlésre. Negatív + <parameter>length</parameter> esetén az <parameter>array</parameter> tömb + végétõl visszafelé ennyi darab elem kerül törlésre. Jótanácsként: + ha a tömb végéig kell mindent lecserélni a + <parameter>replacement</parameter> megadottra, akkor a + <literal>count($input)</literal>-ot kell a <parameter>length</parameter> + paraméterben megadni. + </para> + <para> + Ha a <parameter>replacement</parameter> tömb is meg van adva, akkor + a törölt elemek helyére ennek a tömbnek az elemei kerülnek. + Ha <parameter>offset</parameter> és <parameter>length</parameter> alapján + nem történt törlés, akkor a <parameter>replacement</parameter> elemei + az <parameter>offset</parameter> által mutatott helyre kerülnek + beillesztésre. Jótanácsként: ha a <parameter>replacement</parameter> + egyelemû, akkor nem szükséges <literal>array()</literal>-t használni, + kivéve ha ez az egy elem maga is tömb kell legyen. + </para> + <para> + A következõk egyenértékûek: + <programlisting role="php"> +<![CDATA[ +array_push ($bemenet, $x, $y) array_splice ($bemenet, count ($bemenet), 0, array ($x, $y)) +array_pop ($bemenet) array_splice ($bemenet, -1) +array_shift ($bemenet) array_splice ($bemenet, 0, 1) +array_unshift ($bemenet, $x, $y) array_splice ($bemenet, 0, 0, array ($x, $y)) +$a[$x] = $y array_splice ($bemenet, $x, 1, $y) +]]> + </programlisting> + </para> + <para> + A törölt elemek tömbjével tér vissza a függvény. + </para> + <para> + <example> + <title><function>array_splice</function> példák</title> + <programlisting role="php"> +<![CDATA[ +$bemenet = array ("piros", "zöld", "kék", "sárga"); +array_splice ($bemenet, 2); +// $bemenet most: array ("piros", "zöld") + +$bemenet = array ("piros", "zöld", "kék", "sárga"); +array_splice ($bemenet, 1, -1); +// $bemenet most: array ("piros", "sárga") + +$bemenet = array ("piros", "zöld", "kék", "sárga"); +array_splice ($bemenet, 1, count($bemenet), "narancs"); +// $bemenet most: array ("piros", "narancs") + +$bemenet = array ("piros", "zöld", "kék", "sárga"); +array_splice ($bemenet, -1, 1, array("fekete", "gesztenye")); +// $bemenet most: array ("piros", "zöld", "kék", "fekete", "gesztenye") +]]> + </programlisting> + </example> + </para> + <para> + Lásd még: <function>array_slice</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.array-sum"> + <refnamediv> + <refname>array_sum</refname> + <refpurpose> + tömbbeli elemek összegét számolja ki + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>mixed <function>array_sum</function></funcdef> + <paramdef>array <parameter>array</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Az <function>array_sum</function> az <parameter>array</parameter> + tömb elemeinek <type>integer</type> vagy <type>float</type> + típusú értékével tér vissza. + </para> + <para> + <example> + <title><function>array_sum</function> példák</title> + <programlisting role="php"> +<![CDATA[ +$a = array(2, 4, 6, 8); +echo "összeg(a) = ".array_sum($a)."\n"; +// kiírja, hogy: összeg(a) = 20 + +$b = array("a"=>1.2,"b"=>2.3,"c"=>3.4); +echo "összeg(b) = ".array_sum($b)."\n"; +// kiírja, hogy: összeg(b) = 6.9 +]]> + </programlisting> + </example> + </para> + <note> + <para> + A 4.0.6 verziót megelõzõen a PHP módosította a paraméterként + átadott tömböt, a sztringeket számmá konvertálta, ami majdnem + mindig 0-val volt egyenlõ. + </para> + </note> + </refsect1> + </refentry> + + <refentry id="function.array-unique"> + <refnamediv> + <refname>array_unique</refname> + <refpurpose>törli az ismétlõdõ elemeket</refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>array_unique</function></funcdef> + <paramdef>array <parameter>array</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Az <function>array_unique</function> a bemenetként kapott + <parameter>array</parameter> tömbbõl minden értéket egyszer vesz, + és az így keletkezett tömbbel tér vissza. + </para> + <para> + Az indexelést megtartja. Az <function>array_unique</function> minden érték + esetén az elsõként megtalált elem indexét tartja meg, a többi ezután + következõt eldobja. [Ez a kijelentés csak az angol kézikönyv fordítása! + Az alábbi példákat MINDENKÉPPEN próbáld ki, és akkor fogod látni, hogy + valójában hogyan mûködik azzal a PHP verzióval, ami Neked van. + A hibát már bejelentettük, javítása folyamatban van...] + </para> + <note> + <simpara> + Két elem akkor és csakis akkor tekinthetõ egyenlõnek, ha + <literal>(string) $elem1 === (string) $elem2</literal>, + azaz ha sztring ábrázolásuk megegyezik. + <!-- TODO: example of it... --> + </simpara> + </note> + <warning> + <simpara> + PHP 4.0.4-ben hibásan mûködött. + <!-- TODO: when exactly was this broken?... --> + </simpara> + </warning> + <para> + <example> + <title> + <function>array_unique</function> példa</title> + <programlisting role="php"> +<![CDATA[ +$bemenet = array ("a" => "zöld", "piros", "b" => "zöld", "kék", "piros"); +$eredmeny = array_unique ($bemenet); +print_r($eredmeny); +/* a következõt írja ki: +Array +( + [b] => zöld + [1] => kék + [2] => piros +) +*/ +]]> + </programlisting> + </example> + </para> + <para> + <example> + <title><function>array_unique</function> és a típusok kapcsolata</title> + <programlisting role="php"> +<![CDATA[ +$bemenet = array (4,"4","3",4,3,"3"); +$eredmeny = array_unique ($bemenet); +var_dump($eredmeny); + +/* a következõt írja ki: (PHP 4.0.6) +array(2) { + [3]=> + int(4) + [4]=> + int(3) +} +*/ +]]> + </programlisting> + </example> + </para> + </refsect1> + </refentry> + + <refentry id="function.array-unshift"> + <refnamediv> + <refname>array_unshift</refname> + <refpurpose> + beszúr a tömb elejére egy vagy több elemet + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>int <function>array_unshift</function></funcdef> + <paramdef>array <parameter>array</parameter></paramdef> + <paramdef>mixed <parameter>var</parameter></paramdef> + <paramdef>mixed <parameter><optional>...</optional></parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Az <function>array_unshift</function> az <parameter>array</parameter> + tömb után megadott elemeket a tömb elejébe beszúrja. A beszúrandó elemeket + listaként kezeli a függvény, így egymáshoz képesti sorrendjük nem változik + meg. + </para> + <para> + Az <parameter>array</parameter> elemeinek új számával tér vissza. + </para> + <para> + <example> + <title><function>array_unshift</function> példa</title> + <programlisting role="php"> +<![CDATA[ +$sor = array ("p1", "p3"); +array_unshift ($sor, "p4", "p5", "p6"); +]]> + </programlisting> + </example> + </para> + <para> + Ez azt eredményezi, hogy a <varname>$sor</varname> tömbnek 5 eleme + lesz: "p4", "p5", "p6", "p1" és "p3". + </para> + <para> + Lásd még: <function>array_shift</function>, + <function>array_push</function> és + <function>array_pop</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.array-values"> + <refnamediv> + <refname>array_values</refname> + <refpurpose>visszadja az összes tömbben elõforduló értéket</refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>array_values</function></funcdef> + <paramdef>array <parameter>input</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Az <function>array_values</function> visszadja az összes + <parameter>input</parameter> tömbben elõforduló értéket. + </para> + <para> + <example> + <title><function>array_values</function> példa</title> + <programlisting role="php"> +<![CDATA[ +$array = array ("méret" => "XL", "szín" => "arany"); +array_values ($array); // eredménye: array ("XL", "arany") +]]> + </programlisting> + </example> + </para> + <note> + <para> + Ez a függvény PHP 4-tõl hozzáférhetõ, a PHP 3-at használók számára + itt van egy lehetséges megvalósítás: + <example> + <title><function>array_values</function> megvalósítása PHP 3-ban</title> + <programlisting role="php"> +<![CDATA[ +function array_values ($arr) { + $t = array(); + while (list($k, $v) = each ($arr)) { + $t[] = $v; + } + return $t; +} +]]> + </programlisting> + </example> + </para> + </note> + <para> + Lásd még: <function>array_keys</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.array-walk"> + <refnamediv> + <refname>array_walk</refname> + <refpurpose> + felhasználói függvényt futtat a tömb minden elemén + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>int <function>array_walk</function></funcdef> + <paramdef>array <parameter>array</parameter></paramdef> + <paramdef>string <parameter>func</parameter></paramdef> + <paramdef>mixed <parameter><optional>userdata</optional></parameter></paramdef> + </funcprototype> + </funcsynopsis> + <simpara> + A <parameter>func</parameter> paraméterben megadott nevû felhasználói + függvényt alkalmazza az <parameter>array</parameter> tömb minden elemére. + A <parameter>func</parameter> függvény hívásakor elsõ paraméterként a + tömbérték, másodikként az indexe kerül átadásra. Ha a + <parameter>userdata</parameter> is szerepel, akkor ez lesz a harmadik + paraméter. A <parameter>func</parameter> nevû függvénynek a felhasználó + által definiáltnak kell lennie, és nem lehet natív PHP függvény. Emiatt + nem lehet <function>array_walk</function> hívásakor például közvetlenül a + <function>str2lower</function> meg hívni, hanem elõször létre kell hozni + egy saját függvényt, majd ennek átadni a paramétereket. + </simpara> + ¬e.func-callback; + <simpara> + Ha <parameter>func</parameter> két vagy három argumentumnál többet igényel + a <parameter>userdata</parameter>-tól függõen, akkor figyelmeztetõ + hibaüzenet (warning) keletkezik minden alkalommal, amikor az + <function>array_walk</function> meghívja a <function>array_walk</function> + függvényt. + Ezeket a figyelmeztetések elnyomhatók a '@' karaktert az + <function>array_walk</function> elé írva vagy az error_reporting() + használatával. + </simpara> + <note> + <para> + Ha a <parameter>func</parameter> függvénynek a tényleges tömbértékekkel + kell dolgoznia, akkor a <parameter>func</parameter> függvény elsõ + paraméterét referenciaként kell átadni. Ezután az ezen a változón végzett + változtatás az eredeti tömbben is változást idéz elõ. + </para> + <para> + A tömb <parameter>func</parameter> függvényen belüli módosítása + megjósolhatatlan viselkedést eredményezhet. + </para> + </note> + <note> + <para> + Az index és a userdata értékek átadása a <parameter>func</parameter> + függvénynek a a 4.0 verziótól elérhetõ. + </para> + <para> + PHP 4-ben <function>reset</function> függvényt szükség szerint meg kell + hívni, mivel az <function>array_walk</function> nem inicializálja a tömböt + alapértelmezés szerint. + </para> + </note> + <para> + <example> + <title><function>array_walk</function> példa</title> + <programlisting role="php"> +<![CDATA[ +$gyumolcsok = array ("d"=>"citrom", "a"=>"narancs", "b"=>"banán", "c"=>"alma"); + +function teszt_atir (&$elem1, $index, $prefix) { + $elem1 = "$prefix: $elem1"; +} + +function teszt_kiir ($elem2, $index) { + echo "$index. $elem2<br>\n"; +} + +array_walk ($gyumolcsok, 'test_kiir'); +reset ($gyumolcsok); +array_walk ($gyumolcsok, 'test_atir', 'gyumolcs'); +reset ($gyumolcsok); +array_walk ($gyumolcsok, 'test_kiir'); +]]> + </programlisting> + </example> + </para> + <simpara> + Lásd még: <function>each</function> és <function>list</function>! + </simpara> + </refsect1> + </refentry> + + <refentry id="function.arsort"> + <refnamediv> + <refname>arsort</refname> + <refpurpose> + fordított sorrendben rendez egy tömböt megtartva az indextársítást + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>void <function>arsort</function></funcdef> + <paramdef>array <parameter>array</parameter></paramdef> + <paramdef>int <parameter><optional>sort_flags</optional></parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Ez a függvény úgy rendezi az <parameter>array</parameter> tömböt, hogy + az indexek megtartják kapcsolatukat a hozzájuk rendelt tömb elemeivel. + Fõként akkor használják, ha az asszociatív tömbök rendezésénél + az aktuális elemsorrend is fontos. + </para> + <example> + <title><function>arsort</function> példa</title> + <programlisting role="php"> +<![CDATA[ +$gyumolcsok = array ("d"=>"citrom", "a"=>"narancs", "b"=>"banán", "c"=>"alma"); +arsort ($gyumolcsok); + reset ($gyumolcsok); +while (list ($key, $val) = each ($gyumolcsok)) { + echo "$key = $val\n"; +} +]]> + </programlisting> + <para> + Ez a példa a következõt írja ki: + <screen> +<![CDATA[ +a = narancs +d = citrom +b = banán +c = alma +]]> + </screen> + </para> + </example> + <para> + A gyümölcsök az abc-nek megfelelõen fordított sorrendben vannak rendezve, + és az indexek az eredeti elemekre mutatnak. + </para> + <para> + A rendezést befolyásolja a <parameter>sort_flags</parameter> paraméter, + részletesebben lásd a <function>sort</function> függvénynél! + </para> + <para> + Lásd még: <function>asort</function>, <function>rsort</function>, + <function>ksort</function> és <function>sort</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.asort"> + <refnamediv> + <refname>asort</refname> + <refpurpose>tömb elemeit rendezi megtartva az indextársítást</refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>void <function>asort</function></funcdef> + <paramdef>array <parameter>array</parameter></paramdef> + <paramdef>int <parameter><optional>sort_flags</optional></parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Ez a függvény úgy rendezi az <parameter>array</parameter> tömböt, hogy az + indexek megtartják kapcsolatukat a hozzájuk rendelt tömbelemekkel. Fõként + akkor használják, ha az asszociatív tömbök rendezésénél az aktuális + elemsorrend is fontos. + </para> + <example> + <title><function>asort</function> példa</title> + <programlisting role="php"> +<![CDATA[ +$gyumolcsok = array ("d"=>"citrom", "a"=>"narancs", "b"=>"banán", "c"=>"alma"); +asort ($gyumolcsok); +reset ($gyumolcsok); +while (list ($key, $val) = each ($gyumolcsok)) { + echo "$key = $val\n"; +} +]]> + </programlisting> + <para> + Ez a példa a következõt írja ki: + <screen> +<![CDATA[ +c = alma +b = banán +d = citrom +a = narancs +]]> + </screen> + </para> + </example> + <para> + A gyümölcsök az abc-nek megfelelõen növekvõ sorrendben vannak rendezve, + és az indexek az eredeti elemekre mutatnak. + </para> + <para> + A rendezést befolyásolja a <parameter>sort_flags</parameter> paraméter, + részletesebben lásd a <function>sort</function> függvénynél! + </para> + <para> + Lásd még: <function>arsort</function>, <function>rsort</function>, + <function>ksort</function> és <function>sort</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.compact"> + <refnamediv> + <refname>compact</refname> + <refpurpose> + tömbbe tömöríti a változókat és értékeiket + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>compact</function></funcdef> + <paramdef>mixed <parameter>varname</parameter></paramdef> + <paramdef>mixed <parameter><optional>...</optional></parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + A <function>compact</function> változó számú paramétert fogad el. + Minden paraméter lehet egy változónevet tartalmazó sztring vagy + akár tömb is. A tömbben lehetnek újabb tömbök is, amelyek a változók + neveit tárolják, a <function>compact</function> rekurzívan kezeli ezt. + </para> + <para> + A <function>compact</function> a változót a neve alapján megkeresi az + aktuális szimbólumtáblában és hozzáadja a kimeneti tömbhöz. A változó + neve lesz a kulcs és a kulcshoz tartozó értéke pedig a változó értéke. + Röviden, <function>extract</function>-tal ellentétesen mûködik. + Az összes hozzáadott változót tároló kimeneti tömbbel tér vissza. + </para> + <para> + Az a sztring, amelynek megfelelõ változó definiálatlan, ki lesz hagyva. + </para> + <para> + <example> + <title><function>compact</function> példa</title> + <programlisting role="php"> +<![CDATA[ +$varos = "Miskolc"; +$mmegye = "BAZ"; +$esemeny = "P.A. elhagyja a varost"; + +$helyrajz = array ("varos", "megye"); + +$eredmeny = compact ("esemeny", "semmi_ilyen_valtozo_nincs", $helyrajz); +]]> + </programlisting> + <para> + A <varname>$eredmeny</varname> értéke <literal>array + ("esemeny" => "P.A. elhagyja a varost", "varos" => "Miskolc", + "megye" => "BAZ")</literal>. + </para> + </example> + </para> + <para> + Lásd még: <function>extract</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.count"> + <refnamediv> + <refname>count</refname> + <refpurpose>megszámolja az elemeket egy változóban</refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>int <function>count</function></funcdef> + <paramdef>mixed <parameter>var</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Visszaadja a <parameter>var</parameter> változó az elemeinek számát, + amely általában <type>array</type>(tömb) típusú (mivel bármi másnak egy + eleme lehet). + </para> + <para> + Ha a <parameter>var</parameter> változó nem tömb, akkor 1-et ad vissza, + kivétel a <literal>count(&null;)</literal> ami egyenlõ + <literal>0</literal>-val. + </para> + <warning> + <para> + A <function>count</function> 0-val térhet vissza definiálatlan + változók esetén és üres tömbök esetén is. Az <function>isset</function> + segítségével lehet megvizsgálni, hogy a változó be van-e állítva. + </para> + </warning> + <para> + Olvasd át a kézikönyv <link linkend="language.types.array">Tömbök</link> + c. fejezetét a PHP-ban megvalósított tömbök részletes magyarazátáért. + </para> + <para> + <example> + <title><function>count</function> példa</title> + <programlisting role="php"> + <!-- TODO: examples about count(null), count(false), count(object).. --> +<![CDATA[ +$a[0] = 1; +$a[1] = 3; +$a[2] = 5; +$eredmeny = count ($a); +// $eredmeny == 3 + +$b[0] = 7; +$b[5] = 9; +$b[10] = 11; +$eredmeny = count ($b); +// $eredmeny == 3; +]]> +</programlisting> + </example> + </para> + <note> + <para> + A <function>sizeof</function> függvény a <function>count</function> + függvény álneve. + </para> + </note> + <para> + Lásd még: <function>is_array</function>, + <function>isset</function> és + <function>strlen</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.current"> + <refnamediv> + <refname>current</refname> + <refpurpose>visszaadja egy tömb aktuális elemét</refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>mixed <function>current</function></funcdef> + <paramdef>array <parameter>array</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Minden tömbnek van egy ún. belsõ mutatója, amely a jelenlegi + elemre mutat. A tömbbe beszúrt elsõ elemre van inicializálva. + </para> + <para> + A <function>current</function> függvény egyszerûen visszaadja + a belsõ mutató által megjelölt tömbelemet. A mutató soha nem + mozdul el errõl az elemrõl. Ha a belsõ mutató az elemlista vége + mögé mutat, akkor <function>current</function> függvény &false;-ot ad + vissza. + <warning> + <para> + Ha a tömb üres elemeket tartalmaz (0 vagy "" - üres string), akkor ez a + függvény az ilyen elemeknél &false;-ot ad vissza. Ez lehetetlenné teszi + annak megállapítását a <function>current</function> függvénnyel, hogy + valóban a lista végére került-e a mutató. Az <function>each</function> + függvénnyel helyesen végig lehet lépkedni egy üres elemeket tartalmazó + tömbön. + </para> + </warning> + </para> + <para> + Lásd még: <function>end</function>, <function>next</function>, + <function>prev</function> és <function>reset</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.each"> + <refnamediv> + <refname>each</refname> + <refpurpose> + visszaadja a tömb pillanatnyilag kijelölt elemét és lépteti a belsõ mutatót + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>each</function></funcdef> + <paramdef>array <parameter>array</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Az <function>each</function> visszaadja az <parameter>array</parameter> + tömb jelenlegi index-érték párját, és elõre mozgatja a tömb belsõ mutatóját. + Ez a index-érték pár egy négyelemû tömbben kerül visszaadásra az alábbi + kulcsokkal: 0, 1, key, and value, valamint az alábbi elemekkel. + <emphasis>0</emphasis>, <emphasis>1</emphasis>,<emphasis>key</emphasis> és + <emphasis>value</emphasis>. A <emphasis>0</emphasis> és a + <emphasis>key</emphasis> tartalmazza a tömbelem kulcsát, + <emphasis>1</emphasis> és <emphasis>value</emphasis> pedig az adatokat. + </para> + <para> + Ha a belsõ mutató az elemlista vége mögé mutat, akkor + <function>each</function> függvény &false;-ot ad vissza. + </para> + <para> + <example> + <title><function>each</function> példák</title> + <programlisting role="php"> +<![CDATA[ +$ize = array ("bob", "fred", "jussi", "jouni", "egon", "marliese"); +$bigyo = each ($ize); +print_r($bigyo); +]]> + </programlisting> + </example> + $bigyo tartalma most: + <screen> +<![CDATA[ +Array ( + 0 => 0 + 1 => 'bob' + key => 0 + value => 'bob' +) +]]> + </screen> + </para> + <para> + <programlisting role="php"> +<![CDATA[ +$ize = array ("Robert" => "Bob", "Seppo" => "Sepi"); +$bigyo = each ($ize); +]]> + </programlisting> + </para> + <para> + $bigyo tartalma most: + <screen> +<![CDATA[ +Array ( + 0 => Robert + 1 => 'Bob' + key => Robert + value => 'Bob' +) +]]> + </screen> + </para> + <para> + Az <function>each</function>-et a <function>list</function>-tel együtt + szokás használni tömbök bejárására, mint például a + <varname>$HTTP_POST_VARS</varname>: + <example> + <title> + <varname>$HTTP_POST_VARS</varname> bejárása <function>each</function> függvénnyel + </title> + <programlisting role="php"> +<![CDATA[ +echo "POST metódussal elküldött változók:<br>"; +reset ($HTTP_POST_VARS); +while (list ($key, $val) = each ($HTTP_POST_VARS)) { + echo "$key => $val<br>"; +} +]]> + </programlisting> + </example> + </para> + <para> + Az each() függvény lefutása után a belsõ tömbmutató a tömb következõ + elemére ugrik, vagy az utolsó elemre, ha a tömb végén áll a mutató. + Használd a <function>reset</function>-et, ha újból végig kell lépkedni + a tömbön. + </para> + <para> + Lásd még: <function>key</function>, <function>list</function>, + <function>current</function>, <function>reset</function>, + <function>next</function> és <function>prev</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.end"> + <refnamediv> + <refname>end</refname> + <refpurpose> + az utolsó elemre állítja a tömb belsõ mutatóját + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>mixed <function>end</function></funcdef> + <paramdef>array <parameter>array</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Az <function>end</function> a <parameter>array</parameter> tömb + belsõ mutatóját annak utolsó elemére állítja, és azt adja vissza. + </para> + <para> + Lásd még: <function>current</function>, + <function>each</function>, + <function>next</function> és <function>reset</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.extract"> + <refnamediv> + <refname>extract</refname> + <refpurpose> + tömbbõl változókat helyez el az aktuális szimbólumtáblába + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>int <function>extract</function></funcdef> + <paramdef>array <parameter>var_array</parameter></paramdef> + <paramdef>int <parameter><optional>extract_type</optional></parameter></paramdef> + <paramdef>string <parameter><optional>prefix</optional></parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Ez a függvény arra szolgál, hogy egy tömb tartalma alapján változókat + helyezzen el az aktuális szimbólumtáblában. A paraméterként kapott + <parameter>var_array</parameter> tömb kulcsait tekinti a változók neveinek + és a tömbelemek értékeit a változók tartalmának. Minden kulcs-érték párból + készül egy változó a szimbólumtáblában, az + <parameter>extract_type</parameter> és <parameter>prefix</parameter> + paraméterektõl függõen. + </para> + <note> + <para> + PHP 4.0.5-tõl kezdve a beillesztett változók számával tér vissza a + függvény. + </para> + </note> + <para> + Az <function>extract</function> megvizsgál minden kulcsot (indexet), hogy + az lehet-e egy érvényes változónév vagy sem, és hogy ilyen nevû változó + létezik-e már a szimbólumtáblában (ütközés). Az érvénytelen változónevek + és ütközések az <parameter>extract_type</parameter> paraméterben + megadottak szerint lesz kezelve. Lehetséges értékei: + <variablelist> + <varlistentry> + <term>EXTR_OVERWRITE</term> + <listitem> + <simpara> + Ütközéskor felülírja a már létezõ változót. + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term>EXTR_SKIP</term> + <listitem> + <simpara> + Ütközéskor nem írja felül a létezõ változót. + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term>EXTR_PREFIX_SAME</term> + <listitem> + <simpara> + Ütközéskor a létrehozandó változó neve elé + <parameter>prefix</parameter> kerül. + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term>EXTR_PREFIX_ALL</term> + <listitem> + <simpara> + Minden létrehozandó változó neve elé <parameter>prefix</parameter> + kerül. PHP 4.0.5-tõl kezdve ez érvényes a numerikus indexû elemekre + is. + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term>EXTR_PREFIX_INVALID</term> + <listitem> + <simpara> + Minden érvénytelen nevû változónév elé a <parameter>prefix</parameter> + kerül. PHP 4.0.5-tõl kezdve használható ez beállítás. + </simpara> + </listitem> + </varlistentry> + </variablelist> + </para> + <para> + Ha nincs megadva az <parameter>extract_type</parameter>, akkor EXTR_OVERWRITE + az alapértelmezés. + </para> + <para> + A <parameter>prefix</parameter> csak akkor szükséges, ha az + <parameter>extract_type</parameter> EXTR_PREFIX_SAME, EXTR_PREFIX_ALL vagy + EXTR_PREFIX_INVALID értékû. Ha prefixszel ellátott változónév sem érvényes, + akkor az nem kerül bele a szimbólumtáblába. + </para> + <para> + Az <function>extract</function> a sikeresen beillesztett változók számával + tér vissza. + </para> + <para> + Az extract függvény egy lehetséges használata azoknak a változóknak a + szimbólumtáblába importálása, amelyeket a + <function>wddx_deserialize</function> adott vissza egy asszociatív + tömbben. + </para> + <para> + <example> + <title><function>extract</function> példa</title> + <programlisting role="php"> +<![CDATA[ +<?php + +/* Feltételezi, hogy a $var_array egy a + wddx_deserialize által visszaadott tömb*/ + +$méret = "nagy"; +$var_tomb = array ("szín" => "kék", + "méret" => "közepes", + "alak" => "gömb"); +extract ($var_tomb, EXTR_PREFIX_SAME, "wddx"); + +print "$szín, $méret, $alak, $wddx_méret\n"; +?> +]]> + </programlisting> + </example> + </para> + <para> + A fenti példa ezt eredményezi: + <programlisting> +<![CDATA[ +kék, nagy, gömb, közepes +]]> + </programlisting> + </para> + <para> + A <varname>$méret</varname> változó nem lett felülírva az EXTR_PREFIX_SAME + megadása miatt, amely azt eredményezte, hogy ehelyett a + <varname>$wddx_méret</varname> változóba került az új érték. + Ha EXTR_SKIP-et használtunk volna, akkor a $wddx_size sem került volna + létrehozásra. Az EXTR_OVERWRITE pedig azt okozta volna, hogy a + <varname>$méret</varname> értéke "közepes"-re változott volna. + Az EXTR_PREFIX_ALL-lal pedig minden változó neve wddx-szel kezdõdne: + <varname>$wddx_szín</varname>, + <varname>$wddx_méret</varname> és + <varname>$wddx_alak</varname>. + </para> + <para> + Asszociatív tömböket kell használni, mert a numerikusan indexeltek nem + adnak eredményt. + </para> + <para> + Lásd még: <function>compact</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.in-array"> + <refnamediv> + <refname>in_array</refname> + <refpurpose>&true;-val tér vissza, ha létezik az érték a tömbben</refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>bool <function>in_array</function></funcdef> + <paramdef>mixed <parameter>needle</parameter></paramdef> + <paramdef>array <parameter>haystack</parameter></paramdef> + <paramdef>bool <parameter><optional>strict</optional></parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Átnézi a <parameter>haystack</parameter> tömböt a + <parameter>needle</parameter> elemet keresve és &true;-t ad vissza, + ha megtalálta és &false;-ot egyébként. + </para> + <para> + Ha a harmadik, <parameter>strict</parameter> paraméter értéke &true;, + akkor az <function>in_array</function> a <parameter>needle</parameter> + <link linkend="language.types">típusát</link> is összeveti + a <parameter>haystack</parameter> tömb elemeiével. + </para> + <note> + <para> + Ha a <parameter>needle</parameter> paraméter sztring, akkor az + összehasonlítás kis- és nagybetûk különbözõségére érzékeny. + </para> + </note> + <para> + <example> + <title><function>in_array</function> példa</title> + <programlisting role="php"> +<![CDATA[ +$os = array ("Mac", "NT", "Irix", "Linux"); +if (in_array ("Irix", $os)) { + print "Got Irix"; +} +if (in_array ("mac", $os)) { // sikertelen, mert az in_array() érzékeny + // a kis- és nagybetûk különbségére + print "Got mac"; +} +]]> + </programlisting> + </example> + </para> + <para> + <example> + <title> + <function>in_array</function> strict paraméterrel</title> + <programlisting role="php"> +<![CDATA[ +<?php +$a = array('1.10', 12.4, 1.13); + +if (in_array('12.4', $a, TRUE)) + echo "szigorúan '12.4'-ot találtam meg.\n"; +if (in_array(1.13, $a, TRUE)) + echo "szigorúan 1.13-ot találtam meg. \n"; +?> + +// ennek a kimenete: + +szigorúan 1.13-ot találtam meg +]]> +</programlisting> + </example> + </para> + <para> + Lásd még: <function>array_search</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.array-search"> + <refnamediv> + <refname>array_search</refname> + <refpurpose> + adott elemet keres a tömbben és az indexével tér vissza + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>mixed <function>array_search</function></funcdef> + <paramdef>mixed <parameter>needle</parameter></paramdef> + <paramdef>array <parameter>haystack</parameter></paramdef> + <paramdef>bool <parameter><optional>strict</optional></parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Átnézi a <parameter>haystack</parameter> tömböt a + <parameter>needle</parameter> elemet keresve és visszaadja az + indexét/kulcsát, ha megtalálta, egyébként &false;-ot. + </para> + <para> + Ha a harmadik, <parameter>strict</parameter> paraméter értéke &true;, + akkor az <function>array_search</function> a <parameter>needle</parameter> + <link linkend="language.types">típusát</link> is összeveti + a <parameter>haystack</parameter> tömb elemeiével. + </para> + &return.falseproblem; + <para> + Lásd még: <function>in_array</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.key"> + <refnamediv> + <refname>key</refname> + <refpurpose> + asszociatív tömb pillanatnyilag kiválasztott kulcsát adja vissza + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>mixed <function>key</function></funcdef> + <paramdef>array <parameter>array</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + A <function>key</function> a belsõ tömbmutató által pillanatnyilag + kijelölt elem kulcsával tér vissza. + </para> + <para> + Lásd még: <function>current</function> és <function>next</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.krsort"> + <refnamediv> + <refname>krsort</refname> + <refpurpose>kulcsok alapján fordított sorrendbe rendez egy tömböt</refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>int <function>krsort</function></funcdef> + <paramdef>array <parameter>array</parameter></paramdef> + <paramdef>int <parameter><optional>sort_flags</optional></parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Ez a függvény úgy rendezi az <parameter>array</parameter> tömböt a kulcsai + alapján, hogy az indexek megtartják kapcsolatukat a hozzájuk rendelt tömb + elemeivel. Fõként asszociatív tömbök rendezéséhez használatos. + <example> + <title><function>krsort</function> példa</title> + <programlisting role="php"> +<![CDATA[ +$gyumolcsok = array ("d"=>"citrom", "a"=>"narancs", "b"=>"banán", "c"=>"alma"); +krsort ($gyumolcsok); + reset ($gyumolcsok); +while (list ($key, $val) = each ($gyumolcsok)) { + echo "$key = $val\n"; +} +]]> + </programlisting> + </example> + </para> + <para> + Ez a példa a következõt írja ki: + </para> + <para> + <informalexample> + <programlisting> +<![CDATA[ +d = citrom +c = alma +b = banán +a = narancs +]]> + </programlisting> + </informalexample> + </para> + <para> + A rendezést befolyásolja a <parameter>sort_flags</parameter> paraméter, + részletesebben lásd a <function>sort</function> függvénynél! + </para> + <simpara> + Lásd még: <function>asort</function>, <function>arsort</function>, + <function>ksort</function> + <function>sort</function>, + <function>natsort</function> és <function>rsort</function>! + </simpara> + </refsect1> + </refentry> + + <refentry id="function.ksort"> + <refnamediv> + <refname>ksort</refname> + <refpurpose>kulcsok alapján rendezi a tömböt</refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>int <function>ksort</function></funcdef> + <paramdef>array <parameter>array</parameter></paramdef> + <paramdef>int <parameter><optional>sort_flags</optional></parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Ez a függvény úgy rendezi az <parameter>array</parameter> tömböt a kulcsai + alapján, hogy az indexek megtartják kapcsolatukat a hozzájuk rendelt tömb + elemeivel. Fõként asszociatív tömbök rendezéséhez használatos. + <example> + <title><function>ksort</function> példa</title> + <programlisting role="php"> +<![CDATA[ +$gyumolcsok = array ("d"=>"citrom", "a"=>"narancs", "b"=>"banán", "c"=>"alma"); +ksort ($gyumolcsok); +reset ($gyumolcsok); +while (list ($key, $val) = each ($gyumolcsok)) { + echo "$key = $val\n"; +} +]]> + </programlisting> + </example> + </para> + <para> + Ez a példa a következõt írja ki: + </para> + <para> + <informalexample> + <programlisting> +<![CDATA[ +a = narancs +b = banán +c = alma +d = citrom +]]> + </programlisting> + </informalexample> + </para> + <para> + A rendezést befolyásolja a <parameter>sort_flags</parameter> paraméter, + részletesebben lásd a <function>sort</function> függvénynél! + </para> + <simpara> + Lásd még: <function>asort</function>, <function>arsort</function>, + <function>sort</function>, <function>natsort</function> és + <function>rsort</function>! + </simpara> + <note> + <para> + A második paraméter PHP 4-ben használható. + </para> + </note> + </refsect1> + </refentry> + + <refentry id="function.list"> + <refnamediv> + <refname>list</refname> + <refpurpose> + Assign variables as if they were an array + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>void <function>list</function></funcdef> + <varargs/> + </funcprototype> + </funcsynopsis> + <para> + Az <function>array</function>-hoz hasonlóan a <function>list</function> sem + valódi függvény, hanem nyelvi építõelem. A <function>list</function> + a több változó érték-hozzárendelésére szolgál egy mûveleten belül. + <example> + <title><function>list</function> példa</title> + <programlisting role="php"> +<![CDATA[ +<table> + <tr> + <th>Alkalmazott neve</th> + <th>fizetése</th> + </tr> + +<?php + +$result = mysql_query ("SELECT id, nev, fizetes FROM alkalmazottak",$conn); +while (list ($id, $nev, $fizetes) = mysql_fetch_row ($result)) { + print (" <tr>\n". + " <td><a href=\"info.php?id=$id\">$nev</a></td>\n". + " <td>$fizetes</td>\n". + " </tr>\n"); +} + +?> + +</table> +]]> + </programlisting> + </example> + </para> + <para> + Lásd még: <function>each</function> és <function>array</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.natsort"> + <refnamediv> + <refname>natsort</refname> + <refpurpose> + tömböt rendez a "natural order" (természetes sorrend) algoritmus alapján + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>void <function>natsort</function></funcdef> + <paramdef>array <parameter>array</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Ez a függvény olyan rendezõ algoritmust valósít meg, amely az + alfanumerikus sztringeket úgy rendezi, ahogy azt egy ember tenné. Ezt az + eljárást nevezik "natural ordering"-nek - természetes rendezésnek. + A <function>sort</function> függvény reguláris rendezési algortimusa és + eközötti különbséget szemlélteti a következõ példa: + </para> + <para> + <example> + <title><function>natsort</function> példa</title> + <programlisting role="php"> +<![CDATA[ +$array1 = $array2 = array ("img12.png", "img10.png", "img2.png", "img1.png"); + +sort($array1); +echo "Hagyományos rendezés\n"; +print_r($array1); + +natsort($array2); +echo "\nTermészetes rendezés\n"; +print_r($array2); +]]> + </programlisting> + </example> + </para> + <para> + Ez a példa a következõt írja ki: + </para> + <para> + <screen> +<![CDATA[ +Hagyományos rendezés +Array +( + [0] => img1.png + [1] => img10.png + [2] => img12.png + [3] => img2.png +) + +Természetes rendezés +Array +( + [3] => img1.png + [2] => img2.png + [1] => img10.png + [0] => img12.png +) +]]> + </screen> + Részletesebb leírásért lásd: Martin Pool <ulink url="&url.strnatcmp;">Natural Order String Comparison</ulink> + c. oldalát! + </para> + <para> + Lásd még: <function>natcasesort</function>, + <function>strnatcmp</function> és + <function>strnatcasecmp</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.natcasesort"> + <refnamediv> + <refname>natcasesort</refname> + <refpurpose> + tömböt rendez a "natural order" (természetes sorrend) algoritmus alapján + kis-nagybetûk figyelembevétele nélkül + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>void <function>natcasesort</function></funcdef> + <paramdef>array <parameter>array</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Ez a függvény olyan rendezõ algoritmust valósít meg, amely az + alfanumerikus sztringeket úgy rendezi, ahogy azt egy ember tenné. Ezt az + eljárást nevezik "natural ordering"-nek - természetes rendezésnek. + </para> + <para> + A <function>natcasesort</function> függvény a <function>natsort</function> + olyan változata, amely érzéketlen a kis- és nagybetûk különbségére. + Lásd a <function>natsort</function> függvényt a reguláris és a természetes + rendezési algortimusok közötti különbségért! + </para> + <para> + Részletesebb leírásért lásd: Martin Pool <ulink url="&url.strnatcmp;">Natural Order String Comparison</ulink> + c. oldalát! + </para> + <para> + Lásd még: <function>sort</function>, + <function>natsort</function>, + <function>strnatcmp</function> és + <function>strnatcasecmp</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.next"> + <refnamediv> + <refname>next</refname> + <refpurpose> + elõre mozgatja a tömb belsõ mutatóját + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>mixed <function>next</function></funcdef> + <paramdef>array <parameter>array</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Visszaadja belsõ tömbmutató poziciója utáni elemet, + vagy &false;-ot, ha nincs következõ elem. + </para> + <para> + A <function>next</function> a <function>current</function>-hoz + hasonlóan viselkedik egy különbséggel. A belsõ tömbmutatót egy hellyel + elõbbre állítja, mielött visszadná az elemet. Ez azt jelenti, hogy a + mostani pozició után következõ elemmel tér vissza, és a belsõ tömbmutatót + is eggyel elõre lépteti. Ha a belsõ tömbmutató az elemlista végére ér, + akkor a <function>next</function> &false;-ot ad vissza. + <warning> + <para> + Ha a tömb üres elemeket is tartalmaz, akkor ezeknél az elemeknél a + függvény ugyanúgy &false;-szal tér vissza. Üres elemeket tartalmazó + tömb bejárásához nézd meg az <function>each</function> függvényt! + </para> + </warning> + </para> + <para> + Lásd még: + <function>current</function>, <function>end</function>, + <function>prev</function> és <function>reset</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.pos"> + <refnamediv> + <refname>pos</refname> + <refpurpose>visszaadja a tömb aktuális elemét</refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>mixed <function>pos</function></funcdef> + <paramdef>array <parameter>array</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <simpara> + Ez a <function>current</function> függvény álneve. + </simpara> + <para> + Lásd még: + <function>end</function>, <function>next</function>, + <function>prev</function> és <function>reset</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.prev"> + <refnamediv> + <refname>prev</refname> + <refpurpose>visszlépteti a tömb belsõ mutatóját</refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>mixed <function>prev</function></funcdef> + <paramdef>array <parameter>array</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Visszaadja belsõ tömbmutató pozíciója elõtti tömbelemet, + vagy &false;-ot ha nincs következõ elem. + <warning> + <para> + Ha a tömb üres elemeket is tartalmaz, akkor ezeknél az elemeknél a + függvény ugyanúgy &false;-szal tér vissza. Üres elemeket tartalmazó + tömb bejárásához nézd meg az <function>each</function> függvényt! + </para> + </warning> + </para> + <para> + A <function>prev</function> a <function>next</function>-hez hasonlóan + mûködik, kivéve hogy a tömbmutatót visszafelé lépteti nem pedig elõre. + </para> + <para> + Lásd még: <function>current</function>, <function>end</function>, + <function>next</function> és <function>reset</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.range"> + <refnamediv> + <refname>range</refname> + <refpurpose> + egy tartományt lefedõ tömböt készít + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>range</function></funcdef> + <paramdef>mixed <parameter>low</parameter></paramdef> + <paramdef>mixed <parameter>high</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + A <function>range</function> a <parameter>low</parameter> és + <parameter>high</parameter> közé esõ elemekbõl alkotott tömbbel tér + vissza. Ha <parameter>low</parameter> nagyobb mint + <parameter>high</parameter>, akkor a sorozat high-tól indul low felé. + </para> + <example> + <title><function>range</function> példák</title> + <programlisting role="php"> +<![CDATA[ +foreach(range(0, 9) as $szam) { + echo $szam; +} +foreach(range('a', 'z') as $betu) { + echo $betu; +} +foreach(range('z', 'a') as $betu) { + echo $betu; +} +]]> + </programlisting> + </example> + <note> + <para> + A 4.1.0 verziót megelõzõen a <function>range</function> függvény + csak a növekvõ egészszámokból álló tömböt tudott generálni. A + karakteres tartomány és a csökkenõ sorrendû elemek támogatása + a 4.1.0 verziótól létezik. + </para> + <example> + <title>csökkenõ és a karakteres tartományok szimulációja</title> + <programlisting role="php"> +<![CDATA[ +// array_reverse használható arra, hogy megfordítsa a tömböt +foreach(array_reverse(range(0,9)) as $szam) { + echo $szam; +} + +# array_map() és chr() használható arra, hogy számokból karaktereket alkosson +foreach(array_map('chr', range(ord('a'),ord('z'))) as $karakter) { + echo $karakter; +} +]]> + </programlisting> + </example> + </note> + <para> + Lásd még a <function>shuffle</function> függvényt további példákért! + </para> + </refsect1> + </refentry> + + <refentry id="function.reset"> + <refnamediv> + <refname>reset</refname> + <refpurpose> + a tömb belsõ mutatóját az elsõ elemére állítja + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>mixed <function>reset</function></funcdef> + <paramdef>array <parameter>array</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + A <function>reset</function> visszaállítja az <parameter>array</parameter> + tömb belsõ tömbmutatóját az elsõ elemre. + </para> + <para> + <function>reset</function> a tömb elsõ elemével tér vissza. + </para> + <para> + Lásd még: <function>current</function>, + <function>each</function>, <function>next</function> + és <function>prev</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.rsort"> + <refnamediv> + <refname>rsort</refname> + <refpurpose>fordított sorrendben rendez egy tömböt</refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>void <function>rsort</function></funcdef> + <paramdef>array <parameter>array</parameter></paramdef> + <paramdef>int <parameter><optional>sort_flags</optional></parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Ez a függvény fordított sorrendben rendezi át a tömböt: a legnagyobbtól + a legkisebb felé. + <example> + <title><function>rsort</function> példa</title> + <programlisting role="php"> +<![CDATA[ +$gyumolcsok = array ("citrom", "narancs", "banán", "alma"); +rsort ($gyumolcsok); +reset ($gyumolcsok); +while (list ($key, $val) = each ($gyumolcsok)) { + echo "$key = $val\n"; +} +]]> + </programlisting> + </example> + </para> + <para> + Ez a példa a következõt írja ki: + </para> + <para> + <screen> +<![CDATA[ +0 = narancs +1 = citrom +2 = banán +3 = alma +]]> + </screen> + </para> + <para> + A gyümölcsök az abc-nek megfelelõen fordított sorrendben vannak rendezve. + </para> + <para> + A rendezést befolyásolja a <parameter>sort_flags</parameter> paraméter, + részletesebben lásd a <function>sort</function> függvénynél! + </para> + <para> + Lásd még: <function>arsort</function>, + <function>asort</function>, <function>ksort</function>, + <function>sort</function> és <function>usort</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.shuffle"> + <refnamediv> + <refname>shuffle</refname> + <refpurpose>összekeveri a tömb elemeit</refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>void <function>shuffle</function></funcdef> + <paramdef>array <parameter>array</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Ez a függvény véletlenszerûen összekeveri a tömb elemeit. + Az <function>srand</function> függvényt meg kell hívni, hogy + inicializálja a véletlenszám-generátort! + <example> + <title><function>shuffle</function> példa</title> + <programlisting role="php"> +<![CDATA[ +$numbers = range (1,20); +srand ((float)microtime()*1000000); +shuffle ($numbers); +while (list (, $number) = each ($numbers)) { + echo "$number "; +} +]]> + </programlisting> + </example> + </para> + <para> + Lásd még: <function>arsort</function>, <function>asort</function>, + <function>ksort</function>, <function>rsort</function>, + <function>sort</function> és <function>usort</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.sizeof"> + <refnamediv> + <refname>sizeof</refname> + <refpurpose>visszadja a változó elemszámát</refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>int <function>sizeof</function></funcdef> + <paramdef>mixed <parameter>var</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + A <function>sizeof</function> függvény a <function>count</function> + álneve. + </para> + <para> + Lásd még: <function>count</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.sort"> + <refnamediv> + <refname>sort</refname> + <refpurpose>tömböt rendez</refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>void <function>sort</function></funcdef> + <paramdef>array <parameter>array</parameter></paramdef> + <paramdef>int <parameter><optional>sort_flags</optional></parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Ez a függvény egy tömb elemeit rendezi sorba a legkisebbtõl haladva a + legnagyobb felé - azaz növekvõ sorrendben. + <example> + <title><function>sort</function> példa</title> + <programlisting role="php"> +<![CDATA[ +<?php + +$gyumolcsok = array ("citrom", "narancs", "banán", "alma"); +sort ($gyumolcsok); +reset ($gyumolcsok); +while (list ($key, $val) = each ($gyumolcsok)) { + echo "gyumolcsok[".$key."] = ".$val."\n"; +} + +?> +]]> + </programlisting> + </example> + </para> + <para> + Ez a példa a következõt írja ki: + </para> + <para> + <screen> +<![CDATA[ +gyumolcsok[0] = alma +gyumolcsok[1] = banán +gyumolcsok[2] = citrom +gyumolcsok[3] = narancs +]]> +</screen> + </para> + <para> + A gyümölcsök az abc sorrendben vannak rendezve. + </para> + <para> + A rendezést befolyásolja a <parameter>sort_flags</parameter> paraméter, + amelynek a következõ értékei lehetnek: + </para> + <para> + Sorting type flags: + <itemizedlist> + <listitem> + <simpara>SORT_REGULAR - az elemeket hagyományosan hasonlítja össze</simpara> + </listitem> + <listitem> + <simpara>SORT_NUMERIC - az elemeket számokként hasonlítja össze</simpara> + </listitem> + <listitem> + <simpara>SORT_STRING - az elemeket szövegként hasonlítja össze</simpara> + </listitem> + </itemizedlist> + </para> + <para> + Lásd még: <function>arsort</function>, + <function>asort</function>, <function>ksort</function>, + <function>natsort</function>, <function>natcasesort</function>, + <function>rsort</function>, <function>usort</function>, + <function>array_multisort</function> és + <function>uksort</function>! + </para> + <note> + <para> + A második paraméter PHP 4-tõl használható. + </para> + </note> + </refsect1> + </refentry> + + <refentry id="function.uasort"> + <refnamediv> + <refname>uasort</refname> + <refpurpose> + tömböt rendez egy felhasználó összehasonlító függvénnyel megtartva az indextársítást + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>void <function>uasort</function></funcdef> + <paramdef>array <parameter>array</parameter></paramdef> + <paramdef>function <parameter>cmp_function</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Ez a függvény úgy rendez egy tömböt, hogy megtartja az indexek és az + értékek közti relációt. Fõleg akkor használatos, amikor az asszociatív + tömböket rendezzük, ahol az elemek sorrendje fontos. Az összehasonlítást + végzõ függvényt a felhasználó határozza meg. + </para> + <note> + <para> + További példákért lásd a <function>usort</function> and + <function>uksort</function> for példas of user-defined + comparison functions. + </para> + </note> + ¬e.func-callback; + <para> + Lásd még: <function>usort</function>, <function>uksort</function>, + <function>sort</function>, <function>asort</function>, + <function>arsort</function>, <function>ksort</function> + és <function>rsort</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.uksort"> + <refnamediv> + <refname>uksort</refname> + <refpurpose> + tömböt rendez kulcsai alapján egy felhasználó összehasonlító függvénnyel + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>void <function>uksort</function></funcdef> + <paramdef>array <parameter>array</parameter></paramdef> + <paramdef>function <parameter>cmp_function</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Ez a függvény egy felhasználói függvénnyel átrendezi a tömböt a kulcsok + szerint. Akkor használjuk ezt a függvényt, ha a rendezendõ tömböt nem + szokványos feltétel alapján akarjuk rendezni, + </para> + <example> + <title><function>uksort</function> példa</title> + <programlisting role="php"> +<![CDATA[ +function cmp ($a, $b) { + if ($a == $b) return 0; + return ($a > $b) ? -1 : 1; +} + +$a = array (4 => "négy", 3 => "három", 20 => "húsz", 10 => "tíz"); + +uksort ($a, "cmp"); + +while (list ($key, $val) = each ($a)) { + echo "$key: $val\n"; +} +]]> + </programlisting> + </example> + <para> + Ez a példa a következõt írja ki: + </para> + <para> + <screen> +<![CDATA[ +20: húsz +10: tíz +4: négy +3: három +]]> + </screen> + </para> + ¬e.func-callback; + <para> + Lásd még: <function>usort</function>, <function>uasort</function>, + <function>sort</function>, <function>asort</function>, + <function>arsort</function>, <function>ksort</function>, + <function>natsort</function> és <function>rsort</function>! + </para> + </refsect1> + </refentry> + + <refentry id="function.usort"> + <refnamediv> + <refname>usort</refname> + <refpurpose> + tömböt rendez elemértékei alapján egy felhasználó összehasonlító függvénnyel + </refpurpose> + </refnamediv> + <refsect1> + <title>Leírás</title> + <funcsynopsis> + <funcprototype> + <funcdef>void <function>usort</function></funcdef> + <paramdef>array <parameter>array</parameter></paramdef> + <paramdef>string <parameter>cmp_function</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Ez a függvény a <parameter>cmp_function</parameter> paraméterben megadott + nevû felhasználói függvénnyel rendezi az <parameter>array</parameter> tömb + elemeit. Ha a rendezendõ tömböt nem szokványos feltétel alapján akarjuk + rendezni, akkor használjuk ezt a függvényt. + </para> + <para> + Az összehasonlító függvénynek 0-nál kisebb vagy nagyobb ill. 0 értéket kell + visszaadnia, ha az elsõ elem kisebb vagy nagyobb a másodiknál, ill. ha egyenlõk. + Ha két elem egyenlõ, sorrendjük a rendezett tömbben nem definiált. + </para> + ¬e.func-callback; + <para> + <example> + <title><function>usort</function> példa</title> + <programlisting role="php"> +<![CDATA[ +function cmp ($a, $b) { + if ($a == $b) return 0; + return ($a > $b) ? -1 : 1; +} + +$a = array (3, 2, 5, 6, 1); + +usort ($a, "cmp"); + +while (list ($key, $val) = each ($a)) { + echo "$key: $value\n"; +} +]]> +</programlisting> + </example> + </para> + <para> + Ez a példa a következõt írja ki: + </para> + <para> + <screen> +<![CDATA[ +0: 6 +1: 5 +2: 3 +3: 2 +4: 1 +]]> + </screen> + </para> + <note> + <para> + Ebben az egyszerû esetben nyilvánvalóan jobb választás az + <function>rsort</function> függvény használata. + </para> + </note> + <para> + <example> + <title>Az <function>usort</function> használata több dimenziós tömbökön</title> + <programlisting role="php"> +<![CDATA[ +function cmp ($a, $b) { + return strcmp($a["gyumolcs"], $b["gyumolcs"]); +} + +$gyumolcsok[0]["gyumolcs"] = "citrom"; +$gyumolcsok[1]["gyumolcs"] = "alma"; +$gyumolcsok[2]["gyumolcs"] = "szõlõ"; + +usort($gyumolcsok, "cmp"); + +while (list ($key, $val) = each ($gyumolcsok)) { + echo "\$gyumolcsok[$key]: " . $value["gyumolcs"] . "\n"; +} +]]> + </programlisting> + </example> + </para> + <para> + Több dimenziós tömbökre alkalmazva $a és $b + az elsõ indexre mutató referenciákat fog tartalmazni. + </para> + <para> + Ez a példa a következõt írja ki: + </para> + <para> + <screen> +<![CDATA[ +$gyumolcsok[0]: alma +$gyumolcsok[1]: citrom +$gyumolcsok[2]: szõlõ +]]> + </screen> + </para> + <para> + <example> + <title> + Objektum tagfüggvényének (metódus) használata az <function>usort</function>-tal + </title> + <programlisting role="php"> +<![CDATA[ +class TestObj { + var $nev; + + function TestObj($nev) + { + $this->nev = $nev; + } + + /* ez statikus összehasonlító függvény: */ + function cmp_obj($a, $b) + { + $al = strtolower($a->nev); + $bl = strtolower($b->nev); + if ($al == $bl) return 0; + return ($al > $bl) ? +1 : -1; + } +} + +$a[] = new TestObj("c"); +$a[] = new TestObj("b"); +$a[] = new TestObj("d"); + +uasort($a, array ("TestObj", "cmp_obj")); + +foreach ($a as $elem) { + print $elem->nev."\n"; +} +]]> + </programlisting> + </example> + </para> + <para> + Ez a példa a következõt írja ki: + </para> + <para> + <screen> +<![CDATA[ +b +c +d +]]> + </screen> + </para> + <warning> + <para> + Néhány C könyvtárban (mint például a Solaris rendszerekben) a + gyorsrendezés alapjául szolgáló függvény a PHP összeomlását okozhatja, + ha az összehasonlító függvény nem következetes értéket ad vissza. + </para> + </warning> + <para> + Lásd még: <function>uasort</function>, + <function>uksort</function>, <function>sort</function>, + <function>asort</function>, + <function>arsort</function>,<function>ksort</function>, + <function>natsort</function> és <function>rsort</function>! + </para> + </refsect1> + </refentry> + +</reference> + +<!-- Keep this comment at the end of the file +Local variables: +mode: sgml +sgml-omittag:t +sgml-shorttag:t +sgml-minimize-attributes:nil +sgml-always-quote-attributes:t +sgml-indent-step:1 +sgml-indent-data:t +indent-tabs-mode:nil +sgml-parent-document:nil +sgml-default-dtd-file:"../../manual.ced" +sgml-exposed-tags:nil +sgml-local-catalogs:nil +sgml-local-ecat-files:nil +End: +vim600: syn=xml fen fdm=syntax fdl=2 si +vim: et tw=78 syn=sgml +vi: ts=1 sw=1 +-->