Php вывод элементов массива массиву

Как вывести массив в PHP: 6 способов с примерами

Массив в PHP (от англ. Array) — это глобальный объект для хранения набора данных упорядоченным образом, который регламентирует соответствие между ключом и значением. Такой упорядоченный список элементов всегда имеет собственный ключ — он называется индексом, а каждое значение в такой коллекции данных называется элементом. Тип array, обычно, формируется соответствующей конструкцией (array). В качестве параметров она принимает любое количество пар “ключ” / “значение”. Синтаксис такой:

array( key0 => value, key1 => value2, key2 => value3, . )

(Запятая сразу после последнего элемента может не использоваться)

Простыми словами, массив в PHP — это набор определённых данных, объединенный под каким-либо названием (иначе говоря, в пределах одной переменной доступно несколько элементов).

Для чего используется вывод массива

Вывод — одна из самых частых операций, которая используется при работе с массивом. Вывод нужен, чтобы показать информацию о переменной в доступном, читабельном варианте. Без вывода получить представление массива в окне браузера просто невозможно.

PHP предоставляет несколько способов, которые можно использовать для вывода объекта типа array. Некоторые из них вполне универсальные, например, функция print_r(), другие — более узкоспециализированные. Давайте разберём каждый из таких способов и посмотрим, что лучше всего работает для вывода массива.

Читайте также:  Скрипт выпадающего меню javascript

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() предоставляет менее подробную информацию о переменной (по сравнению с 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

Источник

Оцените статью