Как преобразовать переменные в массив и массив в переменные

Сегодня поговорим о массивах и о преобразованиях. Как, например, преобразовать имеющиеся у нас переменные в массив? Или наоборот: если нам нужно преобразовать элементы массива в переменные. Здесь нет ничего сложного, если знать, как использовать специальные функции, которые помогают реализовывать такие преобразования.
преобразование массивов в php
Достаточно часто на практике возникают ситуации, когда необходимо преобразовать переменные в массив.

Если нам, например, нужно проделать с несколькими переменными одну и ту же операцию, то гораздо удобнее объединить эти переменные в массив и проделать сие действие в цикле, чем писать по сути один и тот же код для каждой переменной. Это, кстати, сэкономит достаточное количество строк кода и времени.

Не менее часто бывают и обратные ситуации, когда массив нужно преобразовать в переменные, чтобы в последствии их как-то использовать в различных выражениях, либо куда-то подставлять.

Чтобы во всех этих ситуациях у Вас не возникло никаких проблем, сегодня мы и рассмотрим обе эти операции: преобразование переменных в массив и преобразование массива в переменные.

Преобразование переменных в массив

Начнем мы с преобразования переменных в массив.

Здесь нам поможет функция compact().

Применение ее достаточно простое.

У нас имеются некоторые переменные, которые мы бы хотели преобразовать в единый массив. Для этого нужно прописать имя массива и после знака равенства использовать данную функцию compact(), в скобках передав имена переменных, которые должны быть занесены в массив.

Массив в данном случае получится ассоциативным: в качестве ключей будут выступать имена переменных, а значениями, соответственно, будут значения переменных.

Давайте посмотрим это все на примере:

<?php
$a=1;
$b=2;
$c=3;
$Mass1 = compact('a','b','c');
print_r($Mass1);
?>

 

преобразование переменных в массив
Как видите, у нас было три переменные, которые мы укомплектовали в массив «Mass1», после чего вывели этот массив на экран, дабы убедиться, что получилось именно то, к чему мы стремились.

Теперь я могу проделать с каждым элементом данного массива какие-либо аналогичные действия, используя, например, цикл foreach(). Здесь уже все зависит от той задачи, которая перед Вами стоит.

Преобразование массива в переменные

Давайте теперь рассмотрим и обратный процесс – преобразование массива в переменные.

Здесь в общем то тоже нет ничего сложного, хотя нюансов немного больше.

Для преобразования массива в переменные мы будем использовать функцию extract().

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

Однако, помимо имени самого массива, функция в качестве аргументов может принимать еще 2 параметра: Способ и Префикс.

Способ — это способ обработки конфликтных ситуаций. И он может принимать различные значения:

EXTR_OVERWRITE — если переменная существует, то ее значение переписывается (это значение по умолчанию);

EXTR_SKIP — если переменная существует, то элемент массива пропускается;

EXTR_PREFIX_SAME — если переменная существует, то перед именем переменной будет добавлен префикс, который указывается в третьем параметре – «Префикс»;

EXTR_PREFIX_ALL — перед именем всех переменных будет добавлен префикс, указанный в параметре «Префикс»;

EXTR_IF_EXISTS — извлекает параметры только тех переменных, которые уже существуют;

EXTR_REFS — извлекает переменные как ссылки.

Префикс — это тот префикс, который мы добавляем при необходимости.

Давайте рассмотрим пару примеров.

Сначала преобразуем массив в переменные, к именам которых добавим некоторый префикс.

<?php
$a='Один';
$Mass2 = array('a'=>1, 'b'=>2, 'c'=>3);
extract($Mass2, EXTR_PREFIX_SAME, 'var');
echo "$a $var_a $b $c";
?>

 

преобразование массива в переменные
Так как переменная «$a» у нас уже существует, то при преобразовании массива в переменные к переменной «$a» из массива добавляется префикс, который мы прописали в третьем параметре функции extract() — «var». Таким образом мы избежали конфликта имен переменных. У нас сохранилась переменная «$a», но также преобразовался в переменную и элемент массива с ключом «a». При выводе на экран это можно увидеть.

Давайте для примера рассмотрим применение еще одного Способа.

<?php
$a='Один';
$Mass2 = array('a'=>1, 'b'=>2, 'c'=>3);
extract($Mass2, EXTR_IF_EXISTS);
echo "$a $b $c";
?>

 

различные способы при преобразовании массива в переменные
Этот Способ извлечет значения только тех переменных, которые уже существуют. А в данном случае существует у нас только переменная «$a», следовательно, и при выводе на экране мы увидим только одно значение – «1».

Можете также самостоятельно опробовать и другие Способы, чтобы понять в какой ситуации нужно использовать каждый из них.

Вот такие вот несложные преобразования, которые помогут Вам превращать массивы в переменные и обратно.

А сегодня на этом все.

Делитесь своими комментариями, делитель статьей с друзьями при помощи кнопок соц. сетей, которые расположены ниже.

Подписывайтесь на обновления блога, чтобы всегда быть в курсе всех новых публикаций.

С Вами была Анна Котельникова.

Удачи Вам и до скорых встреч.

Leave a Reply