Блог вебмастера
создание сайтов, заработок в сети, раскрутка, программирование

Как разбить и вывести массив на php
У меня была задача вывести массив на php с разбивкой на части: первые 20 записей в одном блоке, остальные отображаются при нажатии на кнопку. Решил это с помощью array_slice — функция вывода среза с массива. Несколько примеров в записи.
Вывод части массива на php
Есть массив $old_hones. Выводим первые 20 элементов:
Как правильно вывести массив в php?
Как правильно и грамотно вывести массив? Есть функция в конце вывожу данные с помощью (return). Сейчас вывожу вот так:
function geo($sity = null) .
return array(‘str’ => $result[0], ‘gor’ => $result[1]);
>
насколько правильный данный метод по правилам PHP?
- Вопрос задан более трёх лет назад
- 901 просмотр
Комментировать
Решения вопроса 0
Ответы на вопрос 3

Еда — это святое
return не выводит данные никуда, он возвращает значение функции. Да, таким способом можно возвращать массив, ничего плохого нет. В современных версиях PHP можно массивы записывать короче:
return [‘str’ => $result[0], ‘gor’ => $result[1]];
Ответ написан более трёх лет назад

Дополню ответ тем, что возвращаемое значение из функции можно/нужно присваивать переменной, чтобы с этим значением дальше работать, например: $array = geo($city)
P. S. torshew, city именно так пишется))

TODO: Написать статус
Вот так будет норм:
function geo($city = null) < // . return [ 'str' =>$result[0], 'gor' => $result[1], ]; >
function geo($city = null) < $result = []; // . $result['str'] = $data[0]; $result['gor'] = $data[1]; return $result; >
Массивы и рулетка
Тогда ты готов к чуть более сложной теории. Сейчас я тебе расскажу про переменные-массивы. К сожалению, без них никак-никак не обойтись. Посмотри объяснения на картинке — не бойся, все сразу понимать не нужно, просто попробуй прочесть.
Если прочел — переходи к задачам. Не бойся, они гораздо проще, чем теория.

Повторим
Создать пустой или уже заполненный массив
$a = array(); /* Пустой массив */ $a = []; /* В PHP5.4 и старше вместо array() можно писать [] */ /* Массив, содержащий три строки с индексами 0, 1 и 2 */ $cars = ['Ford', 'Toyota', 'Tesla']; /* Массив, содержащий 2 элемента c вручную указанными индексами */ $score = ['Ivan' => 100, 'Petr' => 400]; /* Массив, содержащий элементы с индексами 1, 2, 3, 10, 11 */ $x = [1 => 'a', 'b', 'c', 10 => 'd', 'e'];
Вывести массив или значение элемента массива
var_dump($cars); /* выводит все */ echo "Иван набрал очков\n";
Добавить в массив новый элемент
/* Индекс будет поставлен автоматически (в данном случае 3) */ $cars[] = 'Mersedes'; /* Индекс нового элемента указан явно */ $score['Vasiliy'] = 500;
Поменять значение элемента под индексом
$score['Ivan'] = 200;
Удалить элемент, зная его индекс
unset($score['Ivan']);
Обойти все элементы массива циклом
foreach ($score as $name => $number) < echo "$name набрал $number очков\n"; >/* Если нам нужны только значения без индексов */ foreach ($cars as $car)
Проверить, есть ли в массиве элемент с значением или индексом
/* по значению */ if (in_array('Toyota', $cars)) < echo "В массиве есть значение 'Toyota'\n"; >/* по индексу */ if (array_key_exists('Ivan', $score)) < echo "Есть элемент с индексом Ivan\n"; >if (isset($score['Ivan']))
Ссылки на мануал:
- Массивы
- Функции для работы с массивами
Задача про оценки
Итак, решим задачку:
Некто зарегистрировался в социальной сети, и там его фото поставили оценки (см. на картинке). Надо найти и вывести средний балл.
5.3 Возьми код по ссылке http://codepad.org/DBfuBotM и исправь его, чтобы он показывал правильный ответ.
Подсказка: чтобы узнать средний балл, надо сумму баллов поделить на их количество. Сумму значений можно посчитать через array_sum(), количество через count()
Что-то непонятно? Перечитай теорию, открой мануал, погугли.

Жду ответов в виде ссылок на код (копипастить не надо) и скриншотов с результатами, няши !
Задачка про рост
5.4 Дан рост школьника и рост его одноклассников. Надо найти, сколько человек в классе выше, чем наш герой.
Для этого возьми код по ссылке http://codepad.org/UOaOEgAW и переделай его, чтобы считать сколько человек выше школьника.
Что-то непонятно? Перечитай теорию, открой мануал, погугли. Подсказка: заведи переменную, положи в нее 0, каждый раз, когда видишь высокого школьника, увеличивай на 1 .

Жду ответов в виде ссылок на код (копипастить не надо) и скриншотов с результатами, няши !
Ответ на любой вопрос это же google!
5.5 Давай сделаем программу, отвечающую на любой вопрос. Для этого создадим массив с возможными вариантами ответов, сгенерируем случайное число и возьмем из массива элемент с таким номером.
Подсказка: здесь тебе могла бы помочь функция array_rand()
Что-то непонятно? Перечитай теорию, задай вопрос в треде.

Жду ответов в виде ссылок на код (копипастить не надо) и скриншотов с результатами, няши !
Генератор имен
Еще одна задача.
5.6. Напиши генератор случайного имени для кошки, собаки, брата или сестры на основе картинки ниже.
Код: http://codepad.org/mjuhN3fg или http://ideone.com/6RqNUq
Для этого мы сделаем массив со слогами и несколько раз выберем из него случайный элемент. Эти элементы мы собираем по кусочкам в переменную $name и в конце выводим. Может, тебе пригодится функция array_rand(), которая выбирает случайный индекс из массива.
Собрать одну большую строку (имя) из кусочков (слогов) можно несколькими способами:
- Создать переменную и положить в нее пустую строку ( $string = »; ). Затем на каждом шаге цикла «приклеивать» к ней новый кусочек: $string = $string . $piece; или $string .= $piece; Точка — это оператор, склеивающий («конкатенирующий») 2 строки вместе. Оператор .= надо писать слитно, без пробела.
- Создать переменную, поместить в нее пустой массив. На каждом шаге добавлять в массив новый слог. В конце склеить слоги в массиве в одну строку с помощью implode.
Что-то непонятно? Перечитай теорию, мануал, погугли.

Сделал? Ты у мамы молодец, переходи к следующему уроку.
Куда вводить код? Что надо скачать? Читай первый урок.
Есть вопросы? Задай гуглу или автору.
Нравится урок? Лайкай, репости, приглашай друзей, пости котов и Канако, шли добра, решай задачи, помогай новичкам! Кнопок для лайка нет, кто хочет зарепостить, всегда может сделать это ручками.
Как связаться с автором? Я хочу переодеть его в платье школьницы и жениться на нем. Ящик codedokode (кот) gmail.com ждет ваших писем. А вконтактик и фейсбучек ждут ваших лайков. Но ответ на банальные вопросы лучше искать в Гугле или на stackoverflow.
Я решил задачку. Молодец, делай следующий урок
Ideone не работает!11 Ну так открой Гугл и найди сайты вроде https://repl.it/languages/php , http://phptester.net/ , http://sandbox.onlinephpfunctions.com/ , http://codepad.org/ или http://www.runphponline.com/ . Не ленись.
Почему так много рекламы? Всю рекламу на сайте ставит юкоз (бесплатный хостинг же), а не я.
На сайте установлена система Google Analytics (и еще несколько аналогичных систем от юкоза). Данные о твоем IP-адресе, посещаемых страницах, времени посещения отправляются в Google Corporation, США. Хочу знать, кто и зачем сюда заходит. Поверь, другие сайты делают точно так же. Все сайты пишут логи.
- Начало
-
- Переменные
- Условия и игра в кубики
- Циклы и айфон в кредит
- Массивы и рулетка
- Строки, хакеры и шифровки
- Функции и новый айпад
- Регулярные выражения
- Повторим?
- Бонусные задачки
- Пасты и ООП
- Учим сами
Что это?
Это сайт, где собраны простые уроки по языку программирования PHP. Даже если ты никогда не слышал слова «программирование» и учишься на филолога, ты можешь попробовать их сделать.
Скачивать и устанавливать тоже ничего не надо, делать уроки можно даже с айпада или ведроида.
PHP для чайников (в моем лице) — часть 4


Привет всем! Продолжаем ускоренное изучение PHP Сегодня — часть 4: массивы в PHP, и что-то еще… поехали!
- Итак — массив в PHP. Интересное описание термина «Массив» — это лист бумаги, на котором записан список планируемых покупок. Если бы мы записывали каждую планируемую покупку на отдельном листике — это было бы использование переменных. А если мы все пишем на один лист — это уже массив. Образно, упрощенно, но вроде как понятно. Сам массив создается следующим образом:
$massiv = array("Помидоры", "Сладкий перец", "Огурцы"); ?>Как видите — мы создали переменную $massiv, а после указали, что эта переменная массив (array), состоящий из трех элементов: помидоры, сладкий перец, огурцы.
ВАЖНО: количество элементов в массиве считается с нуля!Теперь разберемся с выводом определенного элемента массива. Для этого номер элемента указываем в квадратных скобках []. На практике это выглядит так:
$massiv = array("Помидоры", "Сладкий перец", "Огурцы"); echo "$massiv[1]"; ?>Т.е. выводим первый элемент массива. Напоминаю — количество элементов в массиве считается с нуля, а значит: нулевой элемент — помидоры, первый элемент — сладкий перец. Запускаем код — и видим: сладкий перец. Все правильно.
Теперь попробуем вывести весь массив целиком. Для этого я возьму более наглядный массив в виде десяти цифр: $massiv = array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
Для начала — узнаем, как получить количество элементов в массиве. Для этого используется команда count:
$massiv = array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10); echo count($massiv); ?>Результат выполнения кода: 11 элементов.
А теперь — выведем массив целиком. Сразу скажу — вариантов решения этой задачи много
1 вариант: использовать функцию print_r(), которая выводит информацию о каждом элементе в очень наглядном виде. Что бы вывод был более наглядным — обернем функцию в тег pre.$massiv = array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10); echo ''
; print_r($massiv); echo '' #уберите пробелы ;) ; ?>Результат выполнения кода:
Array
(
[0] => 0
[1] => 1
[2] => 2
[3] => 3
[4] => 4
[5] => 5
[6] => 6
[7] => 7
[8] => 8
[9] => 9
[10] => 10
)- где очень наглядно виден порядковый номер элемента массива и его значение.
2 вариант: использовать функцию var_dump(), которая выведет не только полную информацию о каждом элементе массива, но и так же тип этого элемента. Запустим код:
$massiv = array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10); echo ''
; var_dump($massiv); echo '' #уберите пробелы :) ; ?>3 вариант: использование цикла foreach, который был создан специально для поэлементного перебора массивов. Выглядит это следующим образом:
$massiv = array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10); foreach ($massiv as $element) { echo "$element".'
'; }; ?>упрощенно код можно представить так: идем по массиву $massiv и получаем переменную $element, которую выводим на экран — причем, что бы элементы массива выводили построчно — добавляем (конкатенация команду перехода строки на новую). Получаем столбец элементов массива.
4 вариант: использование цикла while. Пример кода — ниже:
$massiv = array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10); $minimum = 0; while ($minimum count($massiv)) { echo $massiv[$minimum].'
'; $minimum = $minimum + 1; } ?>На человеческом языке код можно описать так: вначале создаем переменную $minimum со значением нуль (эта переменная служит неким контролем, на который мы будем опираться в процессе работы над массивом). После этого — идем по массиву до тех пор, пока значение переменной $minimum не перестанет быть меньшим количеству элементов массива $massiv. Получаем элемент — выводим на экран, добавляя в конце символ перехода строки. Теперь — увеличиваем переменную $minimum на единицу (нам это нужно, что бы в итоге цикл перестал работать — иначе уйдем в бесконечность работы ) — и берем следующий элемент массива.
5 вариант: использование функции implode(), которая выводит объединяет элементы массива с помощью указанного разделителя (в нашем случае разделителем служит символ переноса строки):
$massiv = array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10); echo implode("
", $massiv); ?>Так… создавать массивы научились, выводить определенные элементы массива — тоже научились, выводить массивы целиком — разобрались как, а вот как редактировать элементы массива в PHP? Давайте разберемся!
Для реактирования элементов массива в PHP нужно лишь указать номер элемента массива, и его новое значение. Например, код:
$massiv = array("Red", "Yellow", "Green"); echo implode("
", $massiv); echo("
"); $massiv[0] = "Cafe"; echo implode("
", $massiv); ?>- изначально у нас имеется массив, содержащий три цвета: красный (нулевая позиция), желтый (первая позиция) и зеленый (вторая позиция). Теперь возьмем, и укажем новое значение нулевого элемента массива — это будет … КОФЕ! Выводим на экран массив — и видим, на нулевой позиции у нас вместо красного цвета — кофе.
Теперь разберемся как удалить элемент массива в PHP. Для этого используется функция unset(). Покажу на практике:
$massiv = array("Red", "Yellow", "Green"); echo implode("
", $massiv); echo("
"); unset($massiv[0]); echo implode("
", $massiv); ?>Имеется массив из трех элементов (да-да, те самые цвета: красный, желтый, зеленый). Выводим массив на экран, а потом — удаляем нулевой элемент (красный цвет), после чего — снова выводим массив на экран. Как видите — красный цвет удален
И да — если использовать unset() без указания номера элемента массива — мы удалим весь массив.
Добавление элементов в массив делается просто — вызываем массив, и показываем элемент, который нужно добавить. Если мы не указываем порядковый номер — то он добавляется в конец. Если указываем — то на указанную позицию:
$massiv = array("1", "2", "3"); echo implode("
", $massiv); $massiv[] = "4"; echo("
"); echo implode("
", $massiv); ?>Где — изначально имеется массив из трех цифр. Добавляем цифру 4, и выводим массив на экран.
И в самом конце сегодняшней записи, посвященной массивам в PHP — сортировка массивов по возрастанию и убыванию. Для более наглядного разбирательства — используем массив из десяти элементов, созданный с помощью генератора случайных чисел (о нем я рассказывал вчера), код генератора выглядит следующим образом:
$massiv = array(); #Создаем пустой массив $minimum = 0; #Создаем переменную с минимальным значением while ($minimum 10) { #Создаем цикл, который будет работать пока минимальная переменная не станет равна или больше 10) $random_number = mt_rand(1, 100); #Создаем переменную с помощью генератора случайных чисел $massiv[] = $random_number; #Добавляем в наш массив значение этой переменной $minimum = $minimum + 1; #Увеличиваем значение минимальной переменной на единицу } echo "Готовый массив:
"; echo implode("
", $massiv); #Выводим готовый массив из случайных чисел на экран ?>Теперь отсортируем созданный массив по возрастанию. Для этого используем функцию sort():
$massiv = array(); $minimum = 0; while ($minimum 10) { $random_number = mt_rand(1, 100); $massiv[] = $random_number; $minimum = $minimum + 1; } echo "Готовый массив:
"; echo implode("
", $massiv); echo "
По возрастанию:
"; sort($massiv); echo implode("
", $massiv); ?>И — если нам нужно отсортировать массив по убыванию — используем rsort():
$massiv = array(); $minimum = 0; while ($minimum 10) { $random_number = mt_rand(1, 100); $massiv[] = $random_number; $minimum = $minimum + 1; } echo "Готовый массив:
"; echo implode("
", $massiv); echo "
По возрастанию:
"; sort($massiv); echo implode("
", $massiv); echo "
По убыванию:
"; rsort($massiv); echo implode("
", $massiv); ?>На сегодня по теме «Массивы в PHP» — все Спасибо за внимание. В случае возникновения вопросов — пишите на почту, или в Телеграм