От автора: иногда я уверен в том, что PHP – это заколдованный язык! Ну как может не запускаться функция, которая вчера успешно работала. В общем, пока я окончательно не вышел из себя, постараемся вывести массив из PHP другими способами.
Методом тыка
В PHP существует несколько типов данных, но массивы выделяются среди них своей «неординарностью». И для вывода значений элементов придется ухитряться и использовать более «весомые» средства, чем обычную языковую конструкцию echo. Не верите? Тогда будем проверять все методом «тыка». Не знаете такого метода? Сейчас научу :).
1 2 3 4 5 |
<?php $my_array=array("первый","второй","третий","четвертый","пятый","шестой","седьмой"); $a=3; echo $my_array; ?> |
В результате чего мы отобразим на экране не сам массив, а сообщение о попытке его вывода. Так как echo рассчитано только на вывод строк, а не структурированных данных.
Если не использовать «тык-метод», то перед тем, как вывести массив PHP, следует более подробно разузнать о средствах, реализованных для этого в языке. Но так неинтересно, и мы продолжим использовать метод «тыка» :). В следующем этапе заезда испытаем функцию print(). Посмотрим, как она поведет себя в этой ситуации:
1 2 3 4 |
<?php $my_array=array("первый","второй","третий","четвертый","пятый","шестой","седьмой"); print $my_array; ?> |
И снова мы получаем аналогичный результат…
Хватит истязаться!
Достаточно! Поваляли дурака, и будет. Займемся решением проблемы вывода массива. В PHP для этого существует специальная функция – print_r():
Но сможет ли эта функция PHP в ассоциативном массиве вывести ключи? Сейчас разберемся, и для этого нам придется переработать наш текущий массив.
1 2 3 4 5 6 7 8 9 10 |
<?php $my_array=array("Вася Пупкин"=>"первый", "Христофор Бонифатич"=>"второй", "Человек и Пароход"=>"третий", "Вольдемарыч"=>"четвертый", "Харитоныч"=>"пятый", "Пупырышкин"=>"шестой", "Абдурахамныч"=>"седьмой"); print_r($my_array); ?> |
Аналоги и не только
В PHP выводить массив на экран можно, используя несколько других функций. Например, var_dump(), которая отображает всю информацию о переданной ей переменной:
1 2 3 4 5 6 7 8 9 10 |
<?php $my_array=array("Вася Пупкин"=>"первый", "Христофор Бонифатич"=>"второй", "Человек и Пароход"=>"третий", "Вольдемарыч"=>"четвертый", "Харитоныч"=>"пятый", "Пупырышкин"=>"шестой", "Абдурахамныч"=>"седьмой"); var_dump($my_array); ?> |
Вывести все значения массива PHP поможет и другая функция – var_export (). Но она возвращает массив в менее информативном формате.
1 2 3 4 5 6 7 8 9 10 |
<?php $my_array=array("Вася Пупкин"=>"первый", "Христофор Бонифатич"=>"второй", "Человек и Пароход"=>"третий", "Вольдемарыч"=>"четвертый", "Харитоныч"=>"пятый", "Пупырышкин"=>"шестой", "Абдурахамныч"=>"седьмой"); var_export($my_array); ?> |
Циклы
Кроме встроенных функций в PHP выводить содержимое массива помогают циклы. Проще всего использовать цикл foreach:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<?php $my_array=array("Вася Пупкин"=>"первый", "Христофор Бонифатич"=>"второй", "Человек и Пароход"=>"третий", "Вольдемарыч"=>"четвертый", "Харитоныч"=>"пятый", "Пупырышкин"=>"шестой", "Абдурахамныч"=>"седьмой"); foreach($my_array as $myarr) { echo $myarr."<br />"; } ?> |
Также в PHP можно вывести все элементы массива с помощью самого традиционного метода –for. Но оба цикла больше подходят для работы с простыми массивами, а не ассоциативными:
1 2 3 4 5 6 7 |
<?php $my_array=array("первый","второй","третий","четвертый","пятый","шестой","седьмой"); for($m=0; $m <count($my_array); $m++) { echo $my_array[$m]."<br />"; } ?> |
Мы с вами разобрались, как вывести данные из массива PHP. Рассмотрели все основные варианты. А что касается моей функции, то никакого волшебства в ней нет. Все оказалось намного прозаичнее: я забыл поставить скобку в цикле. Так что никакого чародейства, а обычное помутнение рассудка вследствие недосыпания :).