Извлечение переменных из массивов
Если требуется для массива, проиндексированного строками, присвоить значения элементам переменным, одноименным с соответствующими индексами, то на помощь приходит функция extract. Например, имеется следующий массив:
$fruits["good"] = "яблоко"; $fruits["better"] = "груша"; $fruits["best"] = "персик";
После вызова функции extract будут созданы переменные $good, $better и т.д., и им будут присвоены соответствующие значения из массива.
extract($fruits);
Это легко наблюдать в примере. Извлечение переменных из массива:
<HTML> <HEAD> <TITLE>Извлечение переменных из массива </TITLE> </HEAD> <BODY> <H1>Извлечение переменных из массива </H1> <?php $fruits["good"] = "яблоко"; $fruits["better"] = "груша"; $fruits["best"] = "персик"; extract($fruits); echo "\$good = $good<BR>"; echo "\$better = $better<BR>"; echo "\$best = $best<BR>"; ?> </BODY> </HTML>
После выполнения этого примера переменной $good будет присовоено значение "яблоко", переменной $better — значение "груша" и т.д., что показано на рисунке.
Для аналогичной цели может также использоваться функция list, которая последовательно присваивает значения элементов массива указанным переменным. Ниже приведен пример использования этой функции:
<?php $vegetables[0] = "картошка"; $vegetables[1] = "морковка"; $vegetables[2] = "свекла"; list($Јirst, $second) = $vegetables; echo $ first, "\n"; echo $second; ?>
В результате выполнения этого примера будут выведены строки:
картошка морковка
А что делать, если требуется выполнить обратную операцию и сформировать массив на основе списка переменных? Для этого предназначена функция compact. В качестве аргументов она принимает имена переменных или массивы имен переменных. Значения переменных с указанными именами становятся очередными элементами массива.
<?php $first_name = "Сергей"; $last_name = "Банников"; $role = "Редактор"; $subarray = array("first_name", "last_name"); $resultarray = compact($subarray, "role"); print_r ($resultarray); ?>
В результате выполнения этого примера будет сформирован следующий массив:
Array ( [first_name] => Сергей [last_name] => Банников [role] => Редактор)
Автор: Стивен Хольцнер. Переводчик: С. Банников