How to add a string value into a PHP array
![]()
The array_push is working as it is designed for.
It will add the value and returns the number of elements in that array.
so it is natural if it is returning 3 your array has 2 elements after array push there are now three elements.
You should print_r($array2) your array and look the elements.
array_push() uses reference to the array for the first parameter. When you print_r() , you print the array $array2 , instead of $push .
You are printing the return value of array_push which is the number of items in the array after the push. Try this:
Really, you should be using $array2[] = $value; which will put the value in the first available numeric key in the array, rather than array_push() .
To get the value of the last element in the array(i.e. what you just added) and keep the array intact, use end($array) , or to get the last element and remove it from array, use array_pop($array)
array_push modifies $array2. $push contains count($array2).
array_push takes the array by reference and returns the new number of elements in the array, not the new array as described here. That is why you are getting 3. If you want to see the elements in the array use printr($array2);
In more modern days you could add strings or other data types to an array with Square Bracket method like this:
This approach will add the string ‘world’ to the $arr array variable.
Now the array will actually look like this [‘hello’, ‘world’] which is pretty neat, and quicker than array_push
array_push would be more suitable if you were to push more than one element into the array.
Im pretty confident that Square Bracket Method was introduced in PHP 5.4
Массивы в PHP
Массив — упорядоченный набор элементов, каждый из которых хранит одно значение, идентифицируемое с помощью одного или нескольких индексов.
В простейшем случае массив имеет постоянную длину и хранит единицы данных одного и того же типа, а в качестве индексов выступают целые числа.
Создать массив
Пример создания массива
<?php $myArray = array (1,2,3,4)
Обратиться к элементу массива можно следующим образом
Пройтись по всему массиву
Чтобы вывести на экран все элементы массива можно написать функцию show_array()
Получить длину массива
<?php $my_array = array («one», «two», «three»); array_length = count($my_array); echo($array_length);
Обратиться к элементу по его индексу
<?php $my_array = array («one», «two», «three»); $indexed_array = array_values($my_array); echo$indexed_array[1];
Словари
С помощью array () можно создавать словари
Обратиться к элементу массива можно следующим образом
Обратиться к элементу массива можно следующим образом
Добавить элемент к массиву PHP
Допустим у нас есть массив из двух чисел, который можно посмотреть функцией show_array()
<?php $a = array (1, 2); show_array($a);
Добавить к нему ещё один элемент можно с помощью array_push()
array_push($a, 3) show_array($a);
Найти индекс элемента по значению
Если известно значение array_search() найдёт индекс первого элемента массива с таким значением
<?php $a = array («a», «b», «c»); echo(array_search(«c», $a));
Удалить элемент из массива
Функция unset() удаляет из массива элемент по его индексу
<?php $a = array («a», «b», «c»); show_array($a); unset ($a[1]); show_array($a);
Функцию show_array() мы написали заранее
Подпишитесь на Telegram канал @aofeed чтобы следить за выходом новых статей и обновлением старых
PHP: Функции для работы с массивами
Популярные функции для работы с массивами в PHP. Создание массива, добавление элементов в массив, удаление элементов, получение элементов массива, поиск по массиву, фильтрация элементов массива, сумма значений массива, произведение значений массива, группировка массивов по ключу и тд.
Разберём самые популярные из них.
Создание массива
Создать пустой массив:
Создать массив с элементами:
При необходимости можно воспользоваться функцией array_fill($start, $size, $value) , которая создаст массив с количеством $size элементов со значением $value , начиная с индекса $start .
Можно воспользоваться функцией explode() , которая из строки $string создаст массив используя разделитель $delimiter , в данном случае запятая.
Функция str_split() преобразует строку в массив:
Функция compact() создаёт массив, содержащий названия переменных и их значения:
Наполнение массива (добавление элементов)
Можно сразу определить ключ (индекс) для значения массива:
Функция array_unshift() добавляет один или несколько элементов в начало массива:
Функция array_push() добавляет один или несколько элементов в конец массива:
Узнать количество элементов в массиве (Размер массива)
Узнать количество элементов массива (размер массива) можно следующими способами:
Если в функцию count() вторым параметром передать встроенную в PHP константу COUNT_RECURSIVE , то мы получим количество элементов массива и всех подмассивов, которые в нём находятся:
Работа с ключами массива
Проверить существование ключа (индекса):
Получить элемент массива по его ключу (индексу):
Функция array_keys() возвращает числовые и строковые ключи, содержащиеся в массиве:
Пример с ассоциативным массивом:
Функция array_key_first() получает первый ключ массива:
Функция array_key_last() получает последний ключ массива:
Функция array_search() осуществляет поиск данного значения в массиве и возвращает ключ первого найденного элемента в случае успешного выполнения:
Получение элементов массива
Получить элемент массива по его ключу (индексу):
Получить первый элемент массива (функция current() ):
Получить последний элемент массива (функция end() ):
Получить часть (срез) массива. Функция array_slice($array, $offset, $length) возвращает часть массива начиная с индекса $offset длиной $length . Если $offset отрицательный, то отчет начинается с конца массива. $length можно не указывать, тогда функция вернет все элементы до конца массива начиная с индекса $offset :
Функция array_shift() извлекает первый элемент из массива и возвращает его значение.
Все числовые ключи будут изменены таким образом, что нумерация массива начнётся с нуля, в то время как строковые ключи останутся прежними:
Функция array_pop() извлекает последний элемент из массива и возвращает его значение.
Чтобы извлечь из массива часть, можно применить функции array_slice() и array_diff() .
Выбрать все значения из массива можно с помощью функции array_values() . Создаётся новый массив из исходного массива, игнорируя его ключи:
Выбрать все ключи массива можно с помощью функции array_keys() . Создаётся новый массив состоящий из ключей исходного массива:
Выбрать все случайные ключи из массива можно с помощью функции array_rand($array, $count) . Если $count больше единицы, то результат будет в виде массива:
Поиск и проверка элементов в массиве
Проверить, есть ли значение в массиве:
Проверить, есть ли ключ в массиве:
Удаление элементов из массива
Функция unset() удаляет переменные и элементы массива:
Можно удалить элемент массива по значению:
Для удаления пустых значений в массиве в PHP нет отдельной функции, поэтому применяют функцию array_diff() , которая возвращает расхождения массивов:
Удалить повторяющиеся значения массива:
Объединение массивов
Разделить массив на части
Функция array_chunk($array, $size) создает новый многомерный массив из исходного, деля его на равные части:
Если требуется разделить массив на определенное количество частей можно воспользоваться следующим приемом:
Вернуть массив из значений одного столбца входного массива
Фильтрация элементов массива с помощью callback-функции
Отфильтруем массив пользователей и вернём только тех пользователей, возраст которых больше 20 лет при помощи функции array_filter() :
Применение callback-функции ко всем элементам указанных массивов
Вернём только имена пользователей используя функцию array_map() :
Вернём только имена пользователей, возраст которых больше 20 лет:
Сумма значений массива
Функция array_sum() вычисляет сумму значений массива:
Произведение значений массива
Функция array_product() вычисляет произведение (умножение) элементов массива:
Удаление повторяющихся значений из массива
Функция array_unique() убирает повторяющиеся значения из массива:
Присваивание переменным из списка значения подобно массиву
Языковая конструкция list присваивает переменным из списка значения подобно массиву:
Группировка массивов по ключу
Дано: Есть многомерный массив из товаров с типами цен:
- supplierId — код поставщика
- vat_mrc — минимальная розничная цена с НДС
- mrc — минимальная розничная цена без НДС
- vat_tarif — тарифная цена с НДС
- tarif — тарифная цена без НДС
Задача: Сгруппировать товары по коду поставщика. То есть, из пяти представленных массивов должно получиться два со всеми типами цен:
Массивы в PHP
Массив — это переменная, которая может содержать в себе сразу несколько значений.
Например, так можно объявить массив с тремя значениями:
В коде выше мы создаём переменную $heroes и добавляем в неё 3 строки.
Массивы также отлично подходят для объединения нескольких связанных между собой значений, например характеристик товара:
Создание массива
Для создания пустого массива просто укажите квадратные скобки вместо значения:
Результат в браузере:
PHP сообщает нам, что в переменной лежит массив (англ. array), в котором находится 0 значений.
Чтобы объявить массив с данными, просто перечислите значения в квадратных скобках:
Теперь в переменной $brands лежит массив, состоящий из трёх элементов.
Создание массивов с помощью квадратных скобок работает начиная с версии PHP 5.4. До этого использовался более громоздкий синтаксис:
Ключи и значения массива
Массив состоит из ключей (индексов) и соответствующих им значений. Это можно представить как таблицу:
| Ключ | Значение |
|---|---|
| 0 | Samsung |
| 1 | Apple |
| 2 | Nokia |
У каждого значения есть свой ключ. В массиве не может быть несколько одинаковых ключей.
Вернёмся к предыдущему примеру и посмотрим, что лежит в массиве:
Результат в браузере:
Когда мы создаём массив без указания ключей, PHP генерирует их автоматически в виде чисел, начиная с 0.
Указание ключей происходит с помощью конструкции => :
Простые и ассоциативные массивы
Когда мы создаём массив с числовыми ключами, такой массив называется простым или числовым.
Когда мы создаём массив и указываем строковые ключи вручную, такой массив называется ассоциативным, поскольку по названию ключа можно понять назначение этого значения — название товара, возраст человека и т.д.
Вывод массива
Вывод элементов массива выглядит следующим образом:
Для вывода содержимого массива можно использовать как уже знакомую нам функцию var_dump() , так и print_r() , которая предоставляет информацию о массивах в чуть более удобном для чтения виде.
Однако обе функции выводят информацию на одной строке, что в случае с массивами превращается в кашу. Чтобы этого не происходило, используйте тег <pre> :
Результат в браузере:
Также вывести содержимое массива можно с помощью цикла foreach:
Подробней работу цикла foreach мы разберём в отдельном уроке.
Добавление и удаление элементов
Добавление новых элементов в массив выглядит следующим образом:
Но если название ключа не играет роли, его можно опустить:
Удалить элемент массива можно с помощью функции unset() :
Двумерные и многомерные массивы
В качестве значения массива мы можем передать ещё один массив:
В примере выше мы создали массив $human , а затем внутри него создали ещё один массив $human['hands'] . Результат в браузере:
Обратиться к элементу многомерного массива можно так:
Теперь мы можем хранить в одном массиве целую базу товаров:
Или альтернативный вариант:
Задача 1
1. Создайте массивы $user1 и $user2 , заполните ключи name и age в каждом массиве любыми значениями.
2. Увеличьте значение age у обоих массивов на 50%.
3. Выведите на экран значение ключа name обоих пользователей.
Задача 2
1. Создайте массив $city , добавьте в него ключ name с любым значением.
2. Создайте подмассив streets с любыми случайными улицами. Каждая улица должна иметь имя (name) и количество домов (buildings_count), а также подмассив из номеров домов (old_buildings), подлежащих сносу.