Основы php создать массив

Массивы в PHP: что это и как с ними работать на примерах

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

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

Зачем они нужны

Массив — это такая структура данных, которая хранит одно или несколько однотипных значений в одном объекте. Например: вам требуется хранить 500 чисел. И вместо того, чтобы определять 500 переменных напрямую, достаточно определить массив длиной 500.

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

Сложно? Тогда, представьте список продуктов. Допустим, нам нужно купить:

В массиве эти продукты могут выглядеть следующим образом:

$groceries[0] = "Oranges"; $groceries[1] = "Cheese"; $groceries[2] = "Olives";
$groceries = array('Oranges','Cheese','Olives');

Почему массив — это удобно и красиво? Всё просто: он содержит в себе весь список объектов. Можно быстро добавить или удалить объект из списка, например.

Массив в PHP — не просто метод хранения данных. Скорее — это способ их организации.

Благодаря таким объектам вы можете создать простейшую базу данных и в дальнейшем управлять её содержимым. И обучение работе с массивами — одна из первых задач, с которыми вы столкнетесь, став программистом на PHP.

Типы массивов: численно-индексированный, ассоциативный, многомерный

Существует три разных типа таких объектов.

Запомнить: доступ к каждому значению массива осуществляется с помощью идентификатора, который называется индексом массива.

  1. Численно-индексированный. Это массив с числовым индексом. Доступ к значениям происходит линейно (другими словами, порядок индексов — линейный).
  2. Ассоциативный. Массив со строками в качестве индекса. Элементы находятся в соответствии со значениями ключей (а не в линейном порядке, как в случае с численно-индексированным типом массива).
  3. Многомерный. Массив, содержащий один или несколько массивов, доступ к значениям которых осуществляется с помощью нескольких индексов.

Разберём каждый из этих типов подробнее.

Численно-индексированный массив

Элементы массива адресуются индексами (числами). Такой массив может хранить любые данные, например: числа, строки, иные объекты.

Метод 1: согласно синтаксису:

Метод 2: путем прямого присвоения значений (с использованием индекса).

Обратите внимание: доступ к элементам массива осуществляется по их индексу.

Запомнить: индекс всегда начинается с 0.

Пример

Ассоциативные массивы

Элементы в этом типе представлены строковым идентификатором индекса. Этот идентификатор и применяется для доступа к элементам (вместо индекса). Например, вот так:

arrayname = array( "identifier1" => value2, "identifier2" => value2);

Пример

"45", "Boris"=>"47", "Joanna"=>"53"); echo "Pavel is " . $age['Pavel'] . " years old."; ?>

Многомерный массив

Многомерный тип хранит другие массивы по каждому индексу в качестве элемента. Другими словами, многомерные массивы можно представить как «массив массивов».

$mainarrayname = array( "subarrayname1" => array(elements), "subarrayname2" => array(elements) );

Пример

$ages=array( "dev1" => array("a1"=>1,"a2"=>2,"a3"=>3), "com1" => array("h1"=>45,"h2"=>65,"h3"=>35), "man1" => array("m1"=>22,"m2"=>44,"m3"=>5) );
echo $ages["com1"]["h2"]; prints 65

Как создать массив в PHP

В PHP для создания массива используется одноименная функция:

Но все не так просто. Давайте посмотрим на особенности создания каждого вида массива. Начнём с численно-индексированного.

Численно-индексированные

Существует два вида численно-индексированных массивов по типу присвоения индекса:

1. Автоматическое присвоение. Пример:

$animals = array("Cat", "Dog", "Mouse");

(помните: индекс всегда начинается с 0).

2. Ручное присвоение. Пример:

$cars[0] = "Cat"; $cars[1] = "Dog"; $cars[2] = "Mouse";

Ассоциативные

Напомним: это массивы, использующие «именованные» ключи, которые им присваивают (со строками-индексами).

Существует два способа создания ассоциативного массива:

$age = array("Papa"=>"45", "Baba"=>"77", "Mama"=>"53");

2 способ — более наглядный для объемных списков:

$age['Papa'] = "45"; $age['Baba'] = "77"; $age['Mama'] = "53".

Многомерные

Напомним: это массив, содержащий один или несколько массивов.

PHP поддерживает многомерные массивы глубиной в два / три / четыре / пять и более уровней. Но начинающим лучше воздержаться от работы с объектами глубже 3-х уровней.

Размерность указывает на количество индексов, необходимых для выбора элемента. Например:

  • Для выбора элемента двумерного массива нужно два индекса.
  • Для трехмерного — три индекса.
  • И так далее.

Двумерные массивы

Двумерный массив — это массив массивов. Трехмерный массив будет массив массивов массивов. И так далее.

Представим что у нас есть какие-нибудь данные, например, разные предметы одежды. Для удобства определим их в таблицу:

В наличии (in stock)

Продано (sold)

Источник

array

Создаёт массив. Подробнее о массивах читайте в разделе Массивы.

Список параметров

Синтаксис «индекс => значения», разделённые запятыми, определяет индексы и их значения. Индекс может быть строкой или целым числом. Если индекс опущен, будет автоматически сгенерирован числовой индекс, начиная с 0. Если индекс — число, следующим сгенерированным индексом будет число, равное максимальному числовому индексу + 1. Обратите внимание, что если определены два одинаковых индекса, последующий перезапишет предыдущий.

Наличие завершающей запятой после последнего элемента массива, несмотря на некоторую необычность, является корректным синтаксисом.

Возвращаемые значения

Возвращает массив параметров. Параметрам может быть назначен индекс с помощью оператора => . Подробнее о массивах читайте в разделе Массивы.

Примеры

Последующие примеры демонстрируют создание двухмерного массива, определение ключей ассоциативных массивов и способ генерации числовых индексов для обычных массивов, если нумерация начинается с произвольного числа.

Пример #1 Пример использования array()

$fruits = array (
«fruits» => array( «a» => «orange» , «b» => «banana» , «c» => «apple» ),
«numbers» => array( 1 , 2 , 3 , 4 , 5 , 6 ),
«holes» => array( «first» , 5 => «second» , «third» )
);
?>

Пример #2 Автоматическая индексация с помощью array()

Результат выполнения данного примера:

Array ( [0] => 1 [1] => 1 [2] => 1 [3] => 13 [4] => 1 [8] => 1 [9] => 19 )

Обратите внимание, что индекс ‘3’ определён дважды, и содержит последнее значение 13. Индекс 4 определён после индекса 8, и следующий сгенерированный индекс (значение 19) — 9, начиная с максимального индекса 8.

Этот пример создаёт массив, нумерация которого начинается с 1.

Пример #3 Пример использования array() , нумерация которого начинается с 1

Результат выполнения данного примера:

Array ( [1] => January [2] => February [3] => March )

Как и в Perl, вы имеете доступ к значениям массива внутри двойных кавычек. Однако в PHP нужно заключить ваш массив в фигурные скобки.

Пример #4 Доступ к массиву внутри двойных кавычек

$foo = array( ‘bar’ => ‘baz’ );
echo «Hello < $foo [ 'bar' ]>!» ; // Hello baz!

Примечания

Замечание:

array() — языковая конструкция, используемая для представления литеральных массивов, а не обычная функция.

Смотрите также

  • array_pad() — Дополнить массив определённым значением до указанной длины
  • list() — Присваивает переменным из списка значения подобно массиву
  • count() — Подсчитывает количество элементов массива или Countable объекте
  • range() — Создаёт массив, содержащий диапазон элементов
  • foreach
  • Тип массив

User Contributed Notes 38 notes

As of PHP 5.4.x you can now use ‘short syntax arrays’ which eliminates the need of this function.

Example #1 ‘short syntax array’
$a = [ 1 , 2 , 3 , 4 ];
print_r ( $a );
?>

The above example will output:
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
)

Example #2 ‘short syntax associative array’
$a = [ ‘one’ => 1 , ‘two’ => 2 , ‘three’ => 3 , ‘four’ => 4 ];
print_r ( $a );
?>

The above example will output:
Array
(
[one] => 1
[two] => 2
[three] => 3
[four] => 4
)

an array can execute code.
i try this on php 7.4 (xampp version)

[
$msg = ‘HI GUYS !’
,print ( $msg )
,(function()use ( $msg ) print ‘here is php’ ;
>)()
,print ‘ I`m just an array ,alive one’
];

The following function (similar to one above) will render an array as a series of HTML select options (i.e. ««). The problem with the one before is that there was no way to handle , so this function solves that issue.

function arrayToSelect($option, $selected = », $optgroup = NULL)
$returnStatement = »;

if (isset($optgroup)) foreach ($optgroup as $optgroupKey => $optgroupValue) $returnStatement .= »;

So, for example, I needed to render a list of states/provinces for various countries in a select field, and I wanted to use each country name as an label. So, with this function, if only a single array is passed to the function (i.e. «arrayToSelect($stateList)») then it will simply spit out a bunch of «» elements. On the other hand, if two arrays are passed to it, the second array becomes a «key» for translating the first array.

$countryList = array(
‘CA’ => ‘Canada’,
‘US’ => ‘United States’);

$stateList[‘CA’] = array(
‘AB’ => ‘Alberta’,
‘BC’ => ‘British Columbia’,
‘AB’ => ‘Alberta’,
‘BC’ => ‘British Columbia’,
‘MB’ => ‘Manitoba’,
‘NB’ => ‘New Brunswick’,
‘NL’ => ‘Newfoundland/Labrador’,
‘NS’ => ‘Nova Scotia’,
‘NT’ => ‘Northwest Territories’,
‘NU’ => ‘Nunavut’,
‘ON’ => ‘Ontario’,
‘PE’ => ‘Prince Edward Island’,
‘QC’ => ‘Quebec’,
‘SK’ => ‘Saskatchewan’,
‘YT’ => ‘Yukon’);

$stateList[‘US’] = array(
‘AL’ => ‘Alabama’,
‘AK’ => ‘Alaska’,
‘AZ’ => ‘Arizona’,
‘AR’ => ‘Arkansas’,
‘CA’ => ‘California’,
‘CO’ => ‘Colorado’,
‘CT’ => ‘Connecticut’,
‘DE’ => ‘Delaware’,
‘DC’ => ‘District of Columbia’,
‘FL’ => ‘Florida’,
‘GA’ => ‘Georgia’,
‘HI’ => ‘Hawaii’,
‘ID’ => ‘Idaho’,
‘IL’ => ‘Illinois’,
‘IN’ => ‘Indiana’,
‘IA’ => ‘Iowa’,
‘KS’ => ‘Kansas’,
‘KY’ => ‘Kentucky’,
‘LA’ => ‘Louisiana’,
‘ME’ => ‘Maine’,
‘MD’ => ‘Maryland’,
‘MA’ => ‘Massachusetts’,
‘MI’ => ‘Michigan’,
‘MN’ => ‘Minnesota’,
‘MS’ => ‘Mississippi’,
‘MO’ => ‘Missouri’,
‘MT’ => ‘Montana’,
‘NE’ => ‘Nebraska’,
‘NV’ => ‘Nevada’,
‘NH’ => ‘New Hampshire’,
‘NJ’ => ‘New Jersey’,
‘NM’ => ‘New Mexico’,
‘NY’ => ‘New York’,
‘NC’ => ‘North Carolina’,
‘ND’ => ‘North Dakota’,
‘OH’ => ‘Ohio’,
‘OK’ => ‘Oklahoma’,
‘OR’ => ‘Oregon’,
‘PA’ => ‘Pennsylvania’,
‘RI’ => ‘Rhode Island’,
‘SC’ => ‘South Carolina’,
‘SD’ => ‘South Dakota’,
‘TN’ => ‘Tennessee’,
‘TX’ => ‘Texas’,
‘UT’ => ‘Utah’,
‘VT’ => ‘Vermont’,
‘VA’ => ‘Virginia’,
‘WA’ => ‘Washington’,
‘WV’ => ‘West Virginia’,
‘WI’ => ‘Wisconsin’,
‘WY’ => ‘Wyoming’);

Источник

Читайте также:  Чтение в массив java
Оцените статью