- Как вывести массив в PHP: 6 способов с примерами
- Для чего используется вывод массива
- 1 способ: функции print_r() и var_dump(). Сравнение
- var_dump()
- print_r()
- 2 способ: функция var_export()
- 3 способ: цикл foreach
- 4 способ: цикл for
- 5 способ: цикл while
- 6 способ: функция implode()
- Как вывести PHP массив
- Функция print_r()
- Результат:
- Функция var_dump()
- Результат:
- var_export()
- Результат:
- Цикл foreach
- Результат:
- Результат:
- Результат:
- Цикл for
- Результат:
- Цикл while
- Результат:
- Функция implode()
- Результат:
Как вывести массив в PHP: 6 способов с примерами
Массив в PHP (от англ. Array) — это глобальный объект для хранения набора данных упорядоченным образом, который регламентирует соответствие между ключом и значением. Такой упорядоченный список элементов всегда имеет собственный ключ — он называется индексом, а каждое значение в такой коллекции данных называется элементом. Тип array, обычно, формируется соответствующей конструкцией (array). В качестве параметров она принимает любое количество пар “ключ” / “значение”. Синтаксис такой:
array( key0 => value, key1 => value2, key2 => value3, . )
(Запятая сразу после последнего элемента может не использоваться)
Простыми словами, массив в PHP — это набор определённых данных, объединенный под каким-либо названием (иначе говоря, в пределах одной переменной доступно несколько элементов).
Для чего используется вывод массива
Вывод — одна из самых частых операций, которая используется при работе с массивом. Вывод нужен, чтобы показать информацию о переменной в доступном, читабельном варианте. Без вывода получить представление массива в окне браузера просто невозможно.
PHP предоставляет несколько способов, которые можно использовать для вывода объекта типа array. Некоторые из них вполне универсальные, например, функция print_r(), другие — более узкоспециализированные. Давайте разберём каждый из таких способов и посмотрим, что лучше всего работает для вывода массива.
1 способ: функции print_r() и var_dump(). Сравнение
var_dump() и print_r() — обе функции можно успешно использовать для отображения содержимого переменной. Однако, у них есть несколько ключевых различий. О них и пойдёт речь ниже.
var_dump()
Функция var_dump() используется для отображения типа данных и значения переменной. Она также показывает количество элементов в объекте типа array и выводит его свойства.
var_dump() предоставляет более подробную информацию о переменной (по сравнению с print_r).
Пример использование функции для вывода:
$array = array( 'Moscow', 'Brest', 'Tel Aviv', 'Anaheim', 'Haapsalu', ); echo ''; var_dump($array); echo '';
array(5) < [0]=>string(4) "Moscow" [1]=> string(5) "Brest" [2]=> string(4) "Tel Aviv" [3]=> string(5) "Anaheim" [4]=> string(5) "Haapsalu" >
print_r()
Функция используется для отображения содержимого переменной в человекочитаемом формате. Обычно она используется в целях отладки — для просмотра содержимого массива или иного объекта.
print_r() предоставляет менее подробную информацию о переменной (по сравнению с var_dump).
$array = array( 'Moscow', 'Brest', 'Tel Aviv', 'Anaheim', 'Haapsalu', ); echo ''; print_r($array); echo '';
Array ( [0] => Moscow [1] => Brest [2] => Tel Aviv [3] => Anaheim [4] => Haapsalu )
Давайте сравним обе функции:
- var_dump() — возвращает тип данных и значение переменной, а print_r() — только содержимое переменной.
- var_dump() может отображать все свойства и значения объекта (включая приватные, защищенные свойства и методы). А вот print_r() выводит только публичные свойства и значение var_dump.
- var_dump() более полезна для отладки, а print_r() — для отображения информации.
В целом, var_dump() более «мощная» и предоставляет больший объём информации о переменной. Функция print_r() же — более простая и предоставляет менее подробные данные, но зато в более читабельном формате.
var_dump() разумнее использовать в случаях, когда нужно изучить структуру переменной и ее тип данных, а print_r() — когда нужно отобразить содержимое переменной в удобочитаемом формате.
2 способ: функция var_export()
Функция позволяет вернуть строковое представление переменной.
- Если параметр$return не установлен в true — происходит возврат null и в этом случае переменная отображается на экране.
- Если параметр $ return установлен в true — функция вернет структурированное представление переменной и не будет отображаться на экране.
$array = array( 'Moscow', 'Brest', 'Tel Aviv', 'Anaheim', 'Haapsalu', ); echo ''; echo var_export($array); echo '';
array ( 0 => 'Moscow', 1 => 'Brest', 2 => 'Tel Aviv', 3 => 'Anaheim', 4 => 'Haapsalu', )
Таким образом, var_export() имеет сходство с var_dump() в том, что обе они получают структурированную информацию о переменных. Но если var_export() может вернуть эту информацию в читаемой парсером PHP форме, var_dump() — не может. Говоря более простым языком, возвращаемое значение функции var_export() может быть использовано в дальнейших вычислениях, в отличие от var_dump.
Быстро взглянем на синтаксис функции:
var_export($переменная, $return = false)
Не знаете с чего начать обучение? Прежде чем браться за изучение полноценного языка программирования PHP, разумно будет пройти курс «Веб-разработчик». Если PHP кажется слишком сложным — запишитесь на курс «Основы вёрстки». В указанных курсах вы получите базис для дальнейшего освоения не только PHP но и других языков программирования.
3 способ: цикл foreach
Этот способ идеален, когда требуется поэлементный перебор внутри объекта типа array. Например, вот так:
$array = array( 'Moscow', 'Brest', 'Tel Aviv', 'Anaheim', 'Haapsalu', ); foreach ($array as $row)
Moscow
Brest
Tel Aviv
Anaheim
Haapsalu
Цикл foreach очень важен в разрезе работы с массивом, поэтому нужно сказать о нем подробнее.
Foreach — это тип цикла. Он обеспечивает простой способ итерации по массиву. Проще всего показать, как это всё работает, на примере кода. Начнем с синтаксиса:
$arr = array('value1', 'value2', 'value3');
Мы можем получить доступ к отдельному элементу этого массива с помощью $arr[index], где index — ключ. Обратите внимание: наш объект-массив автоматически пронумерован, поэтому ключами являются целые числа, начиная с 0. Вот так:
$arr[0] == 'value1'. Foreach дает нам простой способ итерации: foreach($arr as $value) < echo $value . PHP_EOL; // PHP_EOL — константа конца строки, которая может быть \n или
>
Это еще не все. Иногда значения недостаточно и нужно знать его ключ. Причем не всегда этот ключ является целым числом. Это может быть и строка, например. Так что давайте воспользуемся другим объектом типа array:
$arr = array ( 'key1' => 'value1', 'key2' => 'value2', 'key3' => 'value3' );
key1 = value1 key2 = value2 key3 = value3
На этом примере видно, что можно получить не только значение, но и ключ каждого элемента массива. Это может быть особенно полезно при модификации объекта типа array в блоке foreach, например.
Немного об объектах
- С помощью foreach можно перебирать не только простые массивы, но и свойства объектов.
- Foreach будет перебирать все видимые свойства объекта, используя тот же синтаксис, что и выше ($key — имя свойства, а $value — значение свойства).
Видимость — ключевой момент, который нужно учитывать. Видимость свойств может зависеть от того, где именно находится foreach, но это большая тема для другой статьи.
Внутренний указатель
До PHP 7-й версии в foreach использовался внутренний указатель — это скрытая переменная, которая указывает на текущий элемент. В PHP 7 и последующих версиях языка произошли значительные изменения, но foreach по-прежнему функционирует как раньше.
4 способ: цикл for
Этот способ вывода можно смело рекомендовать в случаях, когда последовательность индексов является непрерывной. Цикл используется для выполнения кода определённое количество раз.
$array = array( 'Moscow', 'Brest', 'Tel Aviv', 'Anaheim', 'Haapsalu', ); for ($n = 0; $n
1.Moscow
2.Brest
3.Tel Aviv
4.Anaheim
5.Haapsalu
Теперь детальнее посмотрим, как устроен цикл for. Взгляните на эту конструкцию:
for(INITIALISATION; TERMINATION; ITERATION)
Каждый из трех вышеперечисленных элементов является необязательным и может быть любым допустимым утверждением (или утверждениями, разделенными запятой).
for($i = 0; $i < 10; $i++) < echo "squared language-php">$count = 20; for(;$count > 0; $count--)
И можно даже поместить более одного оператора в секции инициализации, завершения и инкремента цикла.
for($i = 0, $count=10, setStart();$count > $i; $i++, $count--) < >function setStart() < // тут что-нибудь полезное в начале цикла >
5 способ: цикл while
Этот способ вывода похож на предыдущий, но у него иной синтаксис. While один раз проходит через блок кода, а затем — повторяет цикл до тех пор, пока заданное условие не будет истинно.
Цикл while можно использовать точно так же, как мы используем цикл for.
$array = array( 'Moscow', 'Brest', 'Tel Aviv', 'Anaheim', 'Haapsalu', ); $index = 0; while ($index
1.Moscow
2.Brest
3.Tel Aviv
4.Anaheim
5.Haapsalu
Мы разобрали несколько видов циклов. Чтобы не запутаться — ещё раз подытожим разницу между ними:
- Цикл for используетя для выполнения кода определенное количество раз.
- Цикл foreach — для итерации объекта типа array и доступа к каждому его элементу по очереди.
- Цикл while используется для выполнения кода до тех пор, пока заданное условие не станет истинно.
- Цикл do. while похож на цикл while, за исключением того, что код в цикле всегда выполняется хотя бы один раз до проверки условия.
Каждый из перечисленных циклов имеет свой собственный синтаксис и особенности использования, но все они имеют одинаковую базовую структуру: условный оператор, определяющий, когда цикл должен продолжаться, и блок кода, который выполняется каждый раз, когда цикл стартует.
6 способ: функция implode()
Функция implode в PHP используется для объединения элементов массива в строку. Другими словами, её можно использовать, если нужно объединить элементы объекта array в строку и при этом задействовать separator (разделитель)
$array = array( 'Moscow', 'Brest', 'Tel Aviv', 'Anaheim', 'Haapsalu', ); echo implode("\r\n", $array);
Moscow
Brest
Tel Aviv
Anaheim
Haapsalu
Таким образом, функция implode() возвращает строку из элементов массива. Она берет массив строк и объединяет их в одну строку с помощью разделителя (строки, которая будет использоваться между любыми частями).
Функцию implode в PHP легко запомнить как «преобразование массива в строку». Простыми словами, она принимает объект типа array и возвращает строку. Функция соединяет все элементы массива и возвращает полученную строку, которую можно поместить в переменную.
Предположим, у вас есть объект типа array следующего вида
…и нам нужно объединить его в строку, поставив разделитель ‘-‘ между каждым элементом. Вот простое и элегантное решение, как как это сделать:
Таким образом, строковая переменная $str будет содержать:
Синтаксис функции implode():
Как вывести PHP массив
Примеры использования PHP функций и циклов для вывода всех элементов массива в окно браузера.
Функция print_r()
Функция print_r() выводит информацию о переменной в удобочитаемом виде. Чтобы отобразить пробелы и переносы результат функции нужно обернуть в тег .
$array = array( 'Andi', 'Benny', 'Cara', 'Danny', 'Emily', ); echo '
'; print_r($array); echo '';
Результат:
Array ( [0] => Andi [1] => Benny [2] => Cara [3] => Danny [4] => Emily )
Функция var_dump()
Функция var_dump() отображает информацию о переменной, включая тип и значение.
$array = array( 'Andi', 'Benny', 'Cara', 'Danny', 'Emily', ); echo '
'; var_dump($array); echo '';
Результат:
array(5) < [0]=>string(4) "Andi" [1]=> string(5) "Benny" [2]=> string(4) "Cara" [3]=> string(5) "Danny" [4]=> string(5) "Emily" >
var_export()
Функция var_export() возвращает строковое представление переменной в виде полноценного PHP-кода.
$array = array( 'Andi', 'Benny', 'Cara', 'Danny', 'Emily', ); echo '
'; echo var_export($array); echo '';
Результат:
array ( 0 => 'Andi', 1 => 'Benny', 2 => 'Cara', 3 => 'Danny', 4 => 'Emily', )
Цикл foreach
Цикл foreach специально создан для поэлементного перебора массивов.
$array = array( 'Andi', 'Benny', 'Cara', 'Danny', 'Emily', ); foreach ($array as $row) < echo $row . "
\r\n"; >Результат:
Andi
Benny
Cara
Danny
EmilyПример с выводом нумерованного списка с использованием индексов массива:
$array = array( 'Andi', 'Benny', 'Cara', 'Danny', 'Emily', ); foreach ($array as $n => $row) < echo ($n + 1) . '.' . $row . "
\r\n"; >Результат:
1.Andi
2.Benny
3.Cara
4.Danny
5.EmilyЧтобы не выводить последний
, добавим условие:$array = array( 'Andi', 'Benny', 'Cara', 'Danny', 'Emily', ); foreach ($array as $n => $row) < echo ($n + 1) . '.' . $row; if ($n < count($array) - 1) < echo "
\r\n"; > >Результат:
1.Andi
2.Benny
3.Cara
4.Danny
5.EmilyЦикл for
Цикл for подойдет только в случаях, когда индексы массива имеют непрерывную нумерацию.
$array = array( 'Andi', 'Benny', 'Cara', 'Danny', 'Emily', ); for ($n = 0; $n < count($array); $n++) < echo $n + 1 . '.' . $array[$n] . "
\r\n"; >Результат:
1.Andi
2.Benny
3.Cara
4.Danny
5.EmilyЦикл while
Цикл while такое же работает как и for .
$array = array( 'Andi', 'Benny', 'Cara', 'Danny', 'Emily', ); $index = 0; while ($index < count($array)) < echo $index + 1 . '.' . $array[$index] . "
\r\n"; $index++; >Результат:
1.Andi
2.Benny
3.Cara
4.Danny
5.EmilyФункция implode()
Также, для вывода массива удобно использовать функцию implode() , которая объединяет элементы массива через разделитель.
$array = array( 'Andi', 'Benny', 'Cara', 'Danny', 'Emily', ); echo implode("
\r\n", $array);Результат:
Andi
Benny
Cara
Danny
Emily