Извлечение переменных из массивов

Если требуется для массива, проиндексированного строками, присвоить зна­чения элементам переменным, одноименным с соответствующими индексами, то на помощь приходит функция extract. Например, имеется следующий мас­сив:

code: #php
$fruits["good"] = "яблоко";
$fruits["better"] = "груша";
$fruits["best"] = "персик";

После вызова функции extract будут созданы переменные $good, $better и т.д., и им будут присвоены соответствующие значения из массива.

code: #php
extract($fruits);

Это легко наблюдать в примере. Извлечение переменных из массива:

code: #php
<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, которая последовательно присваивает значения элементов массива указанным перемен­ным. Ниже приведен пример использования этой функции:

code: #php
<?php
$vegetables[0] = "картошка";
$vegetables[1] = "морковка";
$vegetables[2] = "свекла";
list($Јirst,  $second) = $vegetables;
echo $ first,   "\n";
echo $second;
?>

В результате выполнения этого примера будут выведены строки:

картошка
морковка

А что делать, если требуется выполнить обратную операцию и сформировать массив на основе списка переменных? Для этого предназначена функция compact. В качестве аргументов она принимает имена переменных или массивы имен переменных. Значения переменных с указанными именами становятся очередными элементами массива.

code: #php
<?php
$first_name = "Сергей";
$last_name = "Банников";
$role = "Редактор";
$subarray = array("first_name",   "last_name");
$resultarray = compact($subarray,   "role");
print_r  ($resultarray);
?>

В результате выполнения этого примера будет сформирован следующий мас­сив:

code: #php
Array (
[first_name] => Сергей
[last_name] => Банников
[role] => Редактор)
Книга: PHP в примерах. Купить книгу
Автор: Стивен Хольцнер. Переводчик: С. Банников
Поделиться:

Похожие статьи:

теги: массив