Подробное руководство по php-массивам
Содержание:
- Операторы для работы с массивами
- Обход массивов
- Утилитой mtk
- 5 последних уроков рубрики «PHP»
- Трёхмерные массивы в PHP
- Обновления
- Математические операции
- Функции фильтрации
- Плохо работает интернет Билайн на телефоне
- Основы
- Сокращение кода
- 5 последних уроков рубрики «PHP»
- Как разбить английский текст на символы с помощью preg_split
- Работаем с массивами как профи
- Используем другие операторы при работе с массивами
- Обычный массив в PHP:
- 5 последних уроков рубрики «PHP»
- Сокращение кода
Операторы для работы с массивами
В официальной документации операторы работы с массивами описаны довольно-таки кратко, и в итоге не совсем понятно где и как их можно применять. Давайте рассмотрим каждый оператор. Все они являются бинарными, а значит предназначены для работы с двумя массивами.
Объединение массивов
Итак, в первую очередь рассмотрим оператор (+) для объединения массивов на основе ключей. Ключи второго массива, будут игнорированы в случае если в первом массиве есть элементы с точно такими же ключами. Все остальные элементы из второго массива будут добавлены к первому:
<?php $array1 = array('a', 'b', 'c'); $array2 = array('d', 'e', 'f', 'g', 'h', 'i'); print_r($array1 + $array2); print_r($array2 + $array1);
Array ( => a => b => c => g => h => i ) Array ( => d => e => f => g => h => i )
При выводе результата через print_r(), первые три элемента массива $array2 содержат точно такие же ключи, как в массиве $array1, так что элементы ‘d’, ‘e’, и ‘f’ не попадут в общий массив. При вызове второго print_r(), все ключи элементов в массиве $array1 уже существуют в массиве $array2, поэтому будут игнорированы.
Данная особенность может привести к неожиданным результатам, но в то же время, это может способствовать неплохой оптимизации кода.
<?php $array1 = array('0' => 'a', '1' => 'b', '2' => 'c', '3' => 'd'); $array2 = array(false => 'e', 1 => 'f', 2 => 'g', 3 => 'h', 4 => 'i'); print_r($array1 + $array2);
Array ( => a => b => c => d => i )
Многие думают, что результат сложения зависит от значений элементов массивов, а не ключей. Это не так. Для объединения массивов на основе значений можете воспользоваться комбинацией функций ofarray_merge() и array_unique():
<?php $union = array_unique(array_merge($array1, $array2)); print_r($union);
Array ( => a => b => c => d => e => f => g => h => i )
Сравнение массивов
Оператор (==) можно заюзать для того чтобы проверить содержат ли массивы одинаковые значения. Оператор вернёт true если все пары (ключ:значение) из первого массива совпадут с содержанием второго массива.
<?php $array1 = array('1' => 1, '2' => 2, '3' => 3, '0' => 0); $array2 = array(false => '0', 1 => '1', 2 => '2', 3 => '3'); var_dump($array1 == $array2);
bool(true)
Расположение элементов в двух массивах разное, но они равны. Следующий пример, может показаться странным, но эти массивы не равны из-за разных значений ключей и значений:
<?php $array1 = array(1, 2); $array2 = array(2, 1); var_dump($array1 == $array2);
bool(false)
Для того чтобы проверить массивы на неравенство следует использовать операторы != и <>. Принцип работы точно такой же:
<?php $array1 = array('1' => 1, '2' => 2, '3' => 3, '0' => 0); $array2 = array(false => '0', 1 => '1', 2 => '2', 3 => '3'); var_dump($array1 != $array2);
bool(false)
Идентичность массивов
С помощью оператора === можно проверить абсолютную идентичность массивов:
- содержат одно и тоже количество элементов;
- ключи и значения элементов одинаковы в обоих массивах;
- порядок элементов;
- абсолютное совпадение по типам данных у значений элементов;
Тут есть несколько особенностей: если ключи одного массива типа string, а второго integer и все значения совпадают, то оператор вернёт true. Если же вместо integer воспользоваться float, то результат будет false.
<?php // массивы идентичны, различаются только в типах данных ключей $array1 = array('0' => '0', '1' => '1', '2' => '2', '3' => '3'); $array2 = array(0 => '0', 1 => '1', 2 => '2', 3 => '3'); var_dump($array1 === $array2);
bool(true)
<?php // порядок элементов не совпадает $array1 = array('0' => '0', '1' => '1', '2' => '2', '3' => '3'); $array2 = array(1 => '1', 2 => '2', 3 => '3', 0 => '0'); var_dump($array1 === $array2);
bool(false)
<?php // ключ в первом массива типа string, а во втором float $array1 = array('0.5' => '0'); $array2 = array(0.5 => '0'); var_dump($array1 === $array2);
bool(false)
Ну и обратная проверка может быть осуществлена с помощью оператора (!==).
Обход массивов
array_map() позволяет обойти все элементы массива и указать функцию обратного вызова. Вы можете передать как анонимку, так и название существующей функции. В результате получите массив с преобразованными значениями:
$cities = ; $aliases = array_map('strtolower', $cities); print_r($aliases); // $numbers = ; $squares = array_map(function($number) { return $number ** 2; }, $numbers); print_r($squares); //
Существует устойчивое заблуждение, что в функцию обратного вызова нельзя одновременно передавать и ключи, и значения. Это не так:
$model = ; $callback = function($key, $value) { return "$key is $value"; }; $res = array_map($callback, array_keys($model), $model); print_r($res); // Array // ( // => id is 7 // => name is James // )
$fruits = ; array_walk($fruits, function(&$value, $key) { $value = "$key is $value"; }); print_r($fruits); // Array // ( // => banana is yellow // => apple is green // => orange is orange // )
Утилитой mtk
Для запуска MTK на андроиде можно использовать стороннее программное обеспечение, которое также скачивается из репозитория Google Play. Рассмотрим подробно процедуру на примере апплета «Инженерное меню МТК». Она работает только со смартфонами на базе процессора типа МТК. Действия по смене идентификатора выполняются достаточно просто:
- Запускаем приложение и нажимаем на строчку «Инженерное меню МТК»;
- Смартфон перенаправит пользователя в инженерное меню, где идем по маршруту «Connectivity», затем «CDS Information», а далее в «Phone Information»;
- Идентификатор вводится последовательно в строки Phone 1 и Phone
Изменения надо подтвердить ,а потом перезагрузить устройство. Вводим стандартную команду, чтобы убедиться в применении всех изменений.
5 последних уроков рубрики «PHP»
Когда речь идёт о безопасности веб-сайта, то фраза «фильтруйте всё, экранируйте всё» всегда будет актуальна. Сегодня поговорим о фильтрации данных.
Обеспечение безопасности веб-сайта — это не только защита от SQL инъекций, но и протекция от межсайтового скриптинга (XSS), межсайтовой подделки запросов (CSRF) и от других видов атак
В частности, вам нужно очень осторожно подходить к формированию HTML, CSS и JavaScript кода.
Expressive 2 поддерживает возможность подключения других ZF компонент по специальной схеме. Не всем нравится данное решение
В этой статье мы расскажем как улучшили процесс подключение нескольких модулей.
Предположим, что вам необходимо отправить какую-то информацию в Google Analytics из серверного скрипта. Как это сделать. Ответ в этой заметке.
Подборка PHP песочниц
Подборка из нескольких видов PHP песочниц. На некоторых вы в режиме online сможете потестить свой код, но есть так же решения, которые можно внедрить на свой сайт.
Трёхмерные массивы в PHP
Но никто не говорит, что надо ограничиваться лишь 2-мя измерениями: эти массивы тоже могут, в свою очередь, включать в себя новые.
Многомерный (3-мерный) массив характеризуется шириной, высотой и глубиной. Говоря о двумерном массиве, мы представляем таблицу, говоря о многомерном, можно представить слои в этой таблице. И каждый элемент многомерного массива станет ссылаться на слой, столбец и строку.
Давайте изменим «цветочный» массив, переделав его в 3-мерный, то есть превратив в массив массивов:
$flowers = "фиалки", 100 , 15], "астры", 60 , 25], "каллы", 180 , 7 ], "фиалки", 100 , 15], "астры", 60 , 25], "каллы", 180 , 7], ], "фиалки", 100 , 15], "астры", 60 , 25], "каллы", 180 , 7 ];
Так как данный PHP-массив включает в себя лишь числовые индексы, мы можем применять вложенные циклы для его отображения:
<?php $flowers = "фиалки", 100 , 15], "астры", 60 , 25], "каллы", 180 , 7 ], "фиалки", 100 , 15], "астры", 60 , 25], "каллы", 180 , 7], ], "фиалки", 100 , 15], "астры", 60 , 25], "каллы", 180 , 7 ]; echo "<ul>"; for ( $layer = ; $layer < 3; $layer++ ) { echo "<li>Номер слоя $layer"; echo "<ul>"; for ( $row = ; $row < 3; $row++ ) { echo "<li>Номер строки $row"; echo "<ul>"; for ( $col = ; $col < 3; $col++ ) { echo "<li>".$flowers$layer][$col."</li>"; } echo "</ul>"; echo "</li>"; } echo "</ul>"; echo "</li>"; } echo "</ul>"; ?>
По материалам статьи «PHP: Многомерные массивы».
Пожалуй, этого достаточно, чтобы получить представление о двумерных и многомерных массивах в PHP. Приобрести более глубокие навыки PHP-программирования вы всегда сможете на наших курсах:
Обновления
Пару дней назад мне было и грустно и скучно, захотелось сделать что ни будь хорошее, например сделать так что бы, когда пробегаешь по элементам с помощью foreach(), можно было не только получить элемент ( ValueHandler ), но индекс этого элемента.
Я с энтузиазмом принялся за работу и уже написав тонны кода, наткнулся на комент в документации к PHP, который сделал весь новый код бесполезным.
Оказывается можно делать так:
И в foreach() будет возвращён индекс элемента. Эврика!
Теперь IArrayHandler::pulling() возвращает и новый IArrayHandler от элемента массива, и индекс этого элемента. Я был счастлив, кажется теперь ArrayHandler стал идеальной библиотекой для работы с массивами (в том виде как я обозначил в начале статьи).
На эмоциях я запилил ещё два метода. То есть ещё один метод — IArrayHandler::getting(), плюс я добавил поддержку интерфейса Iterator и теперь экземпляр ArrayHandler можно использовать в foreach() как обычный массив.
Теперь IArrayHandler::pulling() возвращает ArrayHandler для каждого вложенного массива (будут проигнорированы элементы исходного массива, которые не являются массивами). Название метода «pulling» образовалось от названия другого метода — IArrayHandler::pull(), с помощью которого можно получить экземпляр ArrayHandler от элемента массива.
IArrayHandler::getting() возвращает IValueHandler для всех элементов массива, не являющимися массивами. Название метода «getting» образовалось от названия другого метода — IArrayHandler::get(), с помощью которого можно получить экземпляр IValueHandler от элемента массива.
Теперь у нас IArrayHandler::pulling() для массивов, и IArrayHandler::getting() для всех остальных типов.
Более наглядно:
Вывод скрипта:
Если нам надо пробежаться по всем элементам исходного массива, мы используем обычный foreach():
Вывод скрипта:
Соответственно, если мы какие то элементы хотим обработать как элементы, а какие то как массивы, то мы в foreach(), делаем так:
Математические операции
С помощью функции array_sum() можно посчитать сумму элементов массива; array_product() перемножит все значения; array_reduce() позволит применить свою собственную формулу:
$numbers = ; echo(array_sum($numbers)); // 15 echo(array_product($numbers)); // 120 echo(array_reduce($numbers, function($carry, $item) { return $carry ? $carry / $item : 1; })); // 0.0083 = 1/2/3/4/5
Функция array_count_values() поможет посчитать количество всех уникальных значений массива:
$things = ; $values = array_count_values($things); print_r($values); // Array // ( // => 2 // => 1 // => 3 // )
Функции фильтрации
Для фильтрации данных лучшим образом подойдёт функция array_filter(). В качестве параметров необходимо передать массив и анонимную функцию-обработчик. Для того чтобы оставить элемент в массиве следует вернуть , в обратном случае :
Фильтрацию можно произвести и по ключам. Для этого следует воспользоваться третьим параметром, флагом или .
Вдобавок к этому, можете вызвать без аргументов. В результате из массива будут удалены все пустые значения:
Для того чтобы получить из массива только уникальные значения следует вызвать функцию array_unique(). Стоит отметить, что в результирующий массив войдут только первые найденные элементы:
Функция array_column() будет полезна если вам необходимо извлечь определённый столбец многомерного массива. Это может быть результат SQL запроса или данные из файла CSV. Вам следует указать массив и название колонки:
В PHP 7 функция получила небольшой апгрэйд: возможность взаимодействия с полями объекта. Это в значительной мере упрощает :
Плохо работает интернет Билайн на телефоне
Ситуация, когда у клиента плохо работает мобильный интернет Билайн происходит достаточно часто. В этом случае отмечаются проблемы в скорости передачи данных и прогрузки сайтов. Это связывается с:
- загруженностью линии передачи данных. Такая ситуация актуальна в час пик, когда множество клиентов пользуются услугами телекоммуникационного оператора;
- наличием сторонних программ, которые используют канал передачи данных для своего функционирования. Рекомендуется предварительно очистить кэш и удалить ненужные приложения;
- техническими неисправностями девайса.
Решение проблемы
Для диагностики вышеуказанной проблемы вы можете:
- Повторно ввести настройки сети;
- Перезагрузить устройство;
- Закрыть и удалить лишнее программное обеспечение.
Если вышеуказанные действия не помогли, можно подключить опцию высокоскоростного доступа к интернету. Более подробную информацию по данной спецификации можно узнать на соответствующей странице официального сайта.
Основы
Давайте начнём с простой функции, которая оперирует ключами и значениями элементов массивов. Одной из таких функций является array_combine(), которая создаёт новый массив из двух существующих: первый использует для создания ключей, второй в качестве значений:
$keys = ; $values = ; $array = array_combine($keys, $values); print_r($array); // Array // ( // => blue // => green // => orange // )
В этом же разрезе вам могут пригодиться функции array_values(). Она извлекает из ассоциативного массива значения; array_keys() возвращает только ключи заданного массива; array_flip() меняет местами ключи и значения:
print_r(array_keys($array)); // print_r(array_values($array)); // print_r(array_flip($array)); // Array // ( // => sky // => grass // => orange // )
Сокращение кода
Функция list(), которая по сути является конструкцией языка, позволяет быстро присвоить значения массива ряду переменных. Простой пример работы с функцией :
// define array $array = ; // without list() $a = $array; $b = $array; $c = $array; // with list() list($a, $b, $c) = $array;
Данный приём блестяще вписывается в совместную работу с функциями или . Извлекать можно только те значения, которые действительно нужны:
$string = 'hello|wild|world'; list($hello, , $world) = explode('|', $string); echo("$hello, $world"); // hello, world
Также функцию можно поместить в :
$arrays = , , ]; foreach ($arrays as list($a, $b)) { $c = $a + $b; echo($c . ', '); // 3, 7, 11, }
Чтобы извлечь значения из ассоциативного массива можно воспользоваться функцией extract(). В результате вы получите целый ряд переменных (имена которых совпадают с ключами массива):
$array = ; extract($array); echo("$clothes $size $color"); // t-shirt medium blue
При работе с функцией следует быть осторожным, особенно во время взаимодействия с пользовательскими данными (результатами запросов), поэтому рекомендуется использовать флаги и .
Чтобы сделать противоположное действие можно воспользоваться функцией compact(), которая сформирует массив из ряда переменных:
$clothes = 't-shirt'; $size = 'medium'; $color = 'blue'; $array = compact('clothes', 'size', 'color'); print_r($array); // Array // ( // => t-shirt // => medium // => blue // )
5 последних уроков рубрики «PHP»
Когда речь идёт о безопасности веб-сайта, то фраза «фильтруйте всё, экранируйте всё» всегда будет актуальна. Сегодня поговорим о фильтрации данных.
Обеспечение безопасности веб-сайта — это не только защита от SQL инъекций, но и протекция от межсайтового скриптинга (XSS), межсайтовой подделки запросов (CSRF) и от других видов атак
В частности, вам нужно очень осторожно подходить к формированию HTML, CSS и JavaScript кода.
Expressive 2 поддерживает возможность подключения других ZF компонент по специальной схеме. Не всем нравится данное решение
В этой статье мы расскажем как улучшили процесс подключение нескольких модулей.
Предположим, что вам необходимо отправить какую-то информацию в Google Analytics из серверного скрипта. Как это сделать. Ответ в этой заметке.
Подборка PHP песочниц
Подборка из нескольких видов PHP песочниц. На некоторых вы в режиме online сможете потестить свой код, но есть так же решения, которые можно внедрить на свой сайт.
Как разбить английский текст на символы с помощью preg_split
Работаем с массивами как профи
Поистине крутые вещи начинают происходить, когда мы комбинируем несколько вышеупомянутых функций. К примеру мы можем убрать из массива все пустые значения, вызвав и :
$values = ; $words = array_filter(array_map('trim', $values)); print_r($words); //
Чтобы получить идентификаторы и названия объектов моделей достаточно вызывать и :
$models = ; $id_to_title = array_combine( array_column($models, 'id'), array_column($models, 'title') );
Подсчёт трёх самых часто используемых элемента массива можно осуществить вызовом , и :
$letters = ; $values = array_count_values($letters); // get key to count array arsort($values); // sort descending preserving key $top = array_slice($values, 0, 3); // get top 3 print_r($top); // Array // ( // => 5 // => 4 // => 2 // )
Комбинация функций и позволит с лёгкостью подсчитать сумму товаров в корзине:
$order = , , , ]; $sum = array_sum(array_map(function($product_row) { return $product_row * $product_row; }, $order)); print_r($sum); // 250
Используем другие операторы при работе с массивами
PHP действует по-разному при применении других операторов к массивам. Сейчас посмотрим какие могут быть результаты.
Fatal Error: Unexpected Operand Type
PHP выкинет fatal error при использовании следующий операторов по отношению к массивам:
- побитовый оператор не (~)
- арифметический оператор смены знака (-)
- арифметический оператор вычитания (-)
- арифметический оператор умножения (*)
- арифметический оператор деления (/)
Работа с типом Массив, как с типом Integer
При использовании следующих операторов, работа с массивами будет преобразована к работе с целыми числами. Пустой массив (без элементов) это int(0), а не пустой int(1).
- Логическое отрицание (!) вернёт true если массив пуст и false если в массиве один или более элемент.
- Побитовый и (&) вернёт 1 если оба операнда не пусты и 0 если оба операнда пусты.
- Побитовый или (|) вернёт 0 если оба операнда пусты; в противном случае 1.
- Побитовый xor (^) вернёт 0 если оба массива одновременно или пусты или полны. Если хотя бы один из массив пуст, вернётся 1.
- Сдвиг массива на несколько шагов с помощью оператора (<<) вернёт 1 << n если массив не пуст. В противном случае 0.
- Сдвиг права (>>) производит только такое же действие, только в другую сторону.
- Остаток от деления (%) вернёт true если оба массива не пусты. Если второй массив пуст, то это вызовет ошибку деление на ноль (“Division by Zero”). Если первый массив пуст, то будет возвращён 0 (результат 0 % 1).
- Логическое и (&& и AND) вернёт false если любой из массивов пуст. Если они оба не пусты, то true.
- Логическое или (|| и OR) вернёт true если оба операнда не пусты. В противном случае false.
- Если оба массива пусты или не пусты, логический (XOR) вернёт false. В противном случае, если хотя бы один массив пуст true.
Работа с типом Массив, как с типом Строка
При конкатенации двух массивов с помощью (.) будет получен следующий результат:
<?php $array1 = array(0, 1, 2, 3); $array1 = array(0, 1, 2, 3); var_dump($array1 . $array2);
string(10) "ArrayArray"
Без эффекта
Использование операторов (++ и —) не даёт никакого эффекта.
<?php $array1 = $array2; var_dump((++$array1) === $array2);
bool(true)
Обычный массив в PHP:
Для начала надо разобрать что такое вообще массив, если грубо говоря, это просто переменная, которая имеет несколько значений, также каждое значение имеет свой ключ.
В PHP есть два вида массива, первый это ассоциативный массив и массив список.
Ассоциативный массив это когда ключ значения, это какое то слово, или даже несколько слов, а массив список, это когда ключ счёт или индекс, который начинается с нуля.
Объявление массива:
Что бы объявить (Создать), обычный массив в PHP нужно использовать внутри скобок пишем сам массив.
PHP
1 2 |
// Объявление ассоциативного массива $arr=array(‘name’=>’Vova’,’surname’=>’Pupkin’); |
Как видите всё просто, и это ключи, после идёт значение, то есть для ключа это значение , а для это значение .
Что бы сделать массив список, просто не надо давать имя ключу.
PHP
1 2 |
// Объявление список массива $arr=array(‘Vova’,’Pupkin’); |
Также объявлять массив можно просто написав значения в квадратных скобках, вместо , но принято так.
Добавление в массив:
Добавить новое значение в конец массива очень просто.
PHP
1 2 3 4 5 6 7 8 9 10 11 |
// Объявление ассоциативного массива $arr_associative=array(‘name’=>’Vova’,’surname’=>’pupkin’); $arr_list=array(92,12,39) $arr_associative’age’=22; $arr_list=12; |
Как видите надо только перед названием массива, поставить квадратные скобки и приравнять к какому-то значению, если речь идёт о ассоциативном массиве, то ещё надо название ключа добавить.
Также таким образом можно менять значения в массиве, надо только в квадратные скобки ввести название ключа или индекс.
Вывод массива на экран:
Вывод через echo массив PHP работает очень просто, но с одним не достатком.
PHP
1 2 3 4 |
// Объявление ассоциативного массива $arr=array(‘name’=>’Vova’,’surname’=>’pupkin’); echo$arr’name’;// Вывод имени |
Вот что получается.
Как видите очень просто, но не достаток заключается в том, что таким образом вы сможете вывести только отдельное значение, отдельного ключа или индекса.
Если вы хотите вывести весь массив, то тут подойдёт функция , она выводит весь массив вместе с ключами и значениями.
PHP
1 2 3 4 |
// Объявление ассоциативного массива $arr=array(‘name’=>’Vova’,’surname’=>’pupkin’); print_r($arr);// Вывод всего массива |
Вот результат.
Но как видите такой вариант скорее подойдёт для отладки (Проверка ошибок).
Ну а если нам надо вывести только значения, то тут нужен вывод массива в PHP через foreach, это наиболее популярный вывод данных из массива, также он используется просто для алгоритмов.
PHP
1 2 3 4 5 6 7 |
// Объявление ассоциативного массива $arr=array(10,29,12,33,90,1); foreach($arras$index=>$value){ echo$value.’ ‘; } |
Вот результат.
Как видите не чего лишнего, ещё такой способ подойдёт для изменение массива, к примеру, возведение в квадрат всех значений массива.
PHP
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
// Объявление ассоциативного массива $arr=array(10,29,12,33,90,1); print_r($arr); foreach($arras$index=>$value){ $arr$index=$value*$value;// возводим в квадрат } echo'<br>’;// перенос на другую строчку print_r($arr); |
Вот результат.
Как видите массив изменился, подробнее про foreach узнаете из части учебника про циклы (Ссылка на часть).
5 последних уроков рубрики «PHP»
Когда речь идёт о безопасности веб-сайта, то фраза «фильтруйте всё, экранируйте всё» всегда будет актуальна. Сегодня поговорим о фильтрации данных.
Обеспечение безопасности веб-сайта — это не только защита от SQL инъекций, но и протекция от межсайтового скриптинга (XSS), межсайтовой подделки запросов (CSRF) и от других видов атак
В частности, вам нужно очень осторожно подходить к формированию HTML, CSS и JavaScript кода.
Expressive 2 поддерживает возможность подключения других ZF компонент по специальной схеме. Не всем нравится данное решение
В этой статье мы расскажем как улучшили процесс подключение нескольких модулей.
Предположим, что вам необходимо отправить какую-то информацию в Google Analytics из серверного скрипта. Как это сделать. Ответ в этой заметке.
Подборка PHP песочниц
Подборка из нескольких видов PHP песочниц. На некоторых вы в режиме online сможете потестить свой код, но есть так же решения, которые можно внедрить на свой сайт.
Сокращение кода
Функция list(), которая по сути является конструкцией языка, позволяет быстро присвоить значения массива ряду переменных. Простой пример работы с функцией :
Данный приём блестяще вписывается в совместную работу с функциями или . Извлекать можно только те значения, которые действительно нужны:
Также функцию можно поместить в :
Чтобы извлечь значения из ассоциативного массива можно воспользоваться функцией extract(). В результате вы получите целый ряд переменных (имена которых совпадают с ключами массива):
При работе с функцией следует быть осторожным, особенно во время взаимодействия с пользовательскими данными (результатами запросов), поэтому рекомендуется использовать флаги и .
Чтобы сделать противоположное действие можно воспользоваться функцией compact(), которая сформирует массив из ряда переменных: