PHP – list()
A lista titka.
Hadd mutassak be néhány trükköt a PHP egy régi, de annál hasznosabb nyelvi elemével, aminek a neve: list()
. Valószínűleg sokan vannak, akik még hallomásból sem ismerik ezt a szerkezetet, így az ő kedvükért kezdjük a legelején.
A mindig az értékadások bal oldalán álló list()
konstrukcióval tömböket bonthatunk szét, és a tömbelemek értékeit külön-külön változókban helyezhetjük el. Nézzünk egy egyszerű példát:
/* Inicializáljuk a tömböt */
$arr = array('A', 'B', 'C', 'D');
/* a list() segítségével értéket adunk néhány változónak */
list($egy, $ketto, $harom, $negy) = $arr;
/* A változók tartalma a list() után:
* $egy == 'A'
* $ketto == 'B'
* $harom == 'C'
* $negy == 'D'
*/
Ez magában sem egy haszontalan dolog, de nézzük meg, hogyan csavarhatunk egyet-kettőt a dolgon!
Először: ha csak néhány tömbelemet kívánunk változókhoz rendelni, akkor hasznunkra válhat a list()
azon tulajdonsága, hogy a felsorolásában kihagyhatunk elemeket az alábbi módon:
$arr = array('A', 'B', 'C', 'D');
/* a trükk */
list($egy, $ketto, , $negy) = $arr;
/* vagy akár: */
list (, , , $negy) = $arr;
Másodszor: A list()
-tel használható a []
tömb-operátor, aminek a segítségével új elemeket adhatunk a tömbökhöz. Lássuk, hogyan:
/* Az eredeti tömb */
$arr = array(
array('A', 'B', 'C', 'D'),
array('E', 'F', 'G', 'H'),
array('I', 'J', 'K', 'L'),
array('M', 'N', 'O', 'P'),
array('Q', 'R', 'S', 'T')
);
/* Négy üres tömböt hozunk létre */
$egy = $ketto = $harom = $negy = array();
/* Végiglépkedünk $arr-on és list()-tel kitöltjük az új tömböket */
foreach($arr as $row)
{
list($egy[], $ketto[], $harom[], $negy[]) = $row;
}
/* A tömbök elemei a list() után:
* $egy => 'A', 'E', 'I', 'M', 'Q'
* $ketto => 'B', 'F', 'J', 'N', 'R'
* $harom => 'C', 'G', 'K', 'O', 'S'
* $negy => 'D', 'H', 'L', 'P', 'T'
*/
Remélem hasznotokra tudtam lenni ezzel a bejegyzéssel - további jó programozást és kockulást mindenkinek!
További információ a list()
-ről a PHP Kézikönyvben található.