Обращение к элементу массива php

Массивы PHP

Массив — это набор данных. Каждый элемент массива, как обычная переменная, содержит какое-то значение. Это значение можно получить и можно присвоить элементу массива новое значение. Элемент массива может содержать значение любого типа, в том числе другой массив.

В PHP cуществуют индексированные и ассоциативные массивы.

У индексированных каждый элемент имеет номер, который называется индекс. У ассоциативного вместо индексов используются названия. Индекс или название это ключ элемента. Он применяется для обращения к конкретному элементу. В PHP нет особой разницы между индексированными и ассоциативными массивами. Работа с ними происходит практически одинаково. Можно создать массив, в котором будут и индексы и строковые ключи.

Создание массива

В PHP массивы создаются с помощью ключевого слова array . В скобках перечисляются элементы в таком виде:

Элементы разделяются запятыми. Пример:

$mas = array ( 0 => 'Франция', 1 => 'Бельгия', 2 => 'Италия' );

Ключи указывать не обязательно. В этом случае они будут созданы по порядку.

$new_mas = array (5, 70, 11, 138);

Ассациативные массивы создаются таким же способом:

$pr = array ( 'Иванов' => 'Менеджер', 'Петров' => 'Бухгалтер', 'Семёнов' => 'Оператор' );

Есть ещё один способ создания массива. Нужно указать знчение элементу несуществующего массива.

Вывод массива

Для вывода одного элемента массива используется конструкция echo . Она выведет значение элемента так же, как значение переменной. Но для вывода всего массива она не подходит. Вместо этого можно использовать функцию print_r() . Выведем массив $pr на экран:

Обращение к элементам массива

Обращение к ассоциативному массиву делается так же. Только ключ элемента — это строка, и она пишется в кавычках.

Изменение массива

Значение любого элемента массива можно изменить.

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

Функцию unset() можно использовать для удаления элемента массива. Кроме того, существует функция array_pop() , которая удаляет из массива последний элемент и возвращает его значение. При обоих способах переиндексация не производится. Индексы оставшихся элементов остаются такие, какие были. Удалим элементы из массива $newmas с использованием предложенных функций:

unset($new_mas[1]); array_pop($new_mas);

Функция unset() применяется только к существующему элементу, иначе будет ошибка. Если неизвестно, есть ли элемент, то можно проверить его существование.

if (isset($new_mas[1])) unset($new_mas[1]);

Перебор массива

Чтобы произвести какие-то действия с каждым элементом массива используется цикл. Чтобы определить количество итераций нужно получить длину массива. Для этого используется функция count() , которая возвращает количество элементов. Для примера выведем каждый элемент массива $mas :

$num = count($mas); for ($i=0; $i'.$i.' - '.$mas[$i]; >

Не желательно использовать фунцию count() внутри цикла. В этом случае она будет выполняться на каждой итерации. Лучше записать результат её работы в переменную и использовать эту переменную в цикле.

Читайте также:  Тег SMALL

Такой цикл можно использовать для массивов, в которых все индексы элементов идут подряд. Если каких-то элементов нет, то этот цикл ипользовать неудобно. Кроме того, он не подходит для ассоциативных массивов. Для них есть конструкция foreach , которая производит перебор массива.

foreach ($pr as $key => $value) < echo '
'.$key.' - '.$value; >

Первая переменная в скобках — это массив, по которому производится цикл. На каждой итерации цикла в переменную $key записывается ключ элемента, а в переменну. $value — значение элемента. В цикле происходит столько итераций, сколько элементов содержит массив. Имена $key и $value не обязательные. Вы можете использовать любые.

foreach ($new_mas as $key => $value)

Если вы не изменяете значания элементов, и ключи элементов не используются, то переменную $key в конструкции foreach можно не указывать.

Массив в строку

Функция implode() формирует одну строку, состоящую из значений массива. Между значениями вставляется разделитель.

implode (разделитель, массив)

разделитель — строка, которая вставляется между элементами

массив — массив, который объединяется в строку

Для примера преобразуем $mas в строку:

$str = implode(', ', $mas); echo '
'.$str;

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

Функция explode() , делит строку по разделителю и помещает части строки в массив.

explode (разделитель, строка)

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

строка — строка, которая помещается в массив

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

Разделим созданную ранее строку:

$take_mas = explode(', ', $str); print_r($take_mas);

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

Ранее мы рассматривали только одномерные массивы, но они могут иметь и больше измерений. Они могут быть двухмерные, трёхмерные, четырёхменрые и так далее. Если одномерный массив можно представить в виде строки, то двухмерный — это страница, состоящая из нескольких строк. Также двухмерный массив можно представить в виде таблицы, в которой есть строки, а в каждой строке есть ячейки. Каждый элемент в таком массиве имеет два индекса — индекс первого измерения и второго измерения. Эти индексы можно сравнить с номером строки и номером символа в строке. В коде программы каждый индекс пишется в квадратных скобках. Пример:

$dimens[0][0]=30; $dimens[0][1]=5; $dimens[1][0]=10; $dimens[1][1]=55; echo '
'; print_r($dimens);

Многомерные массивы бывают не только индексированные, но и ассоциативные.

Читайте также:  Table generator html tables

Функции для работы с масссивами

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

Коприрование материалов сайта возможно только с согласия администрации

2017 — 2023 © basecourse.ru Все права защищены

Источник

Массивы

Массив (php.net) — это набор данных, которые объединены под одним именем. Массив состоит из нескольких элементов, которые имеют свой определенный индекс. Массивы, в отличии от переменных, позволяют хранить большое количество различных данных.

Нумерованные массивы

Обычные нумерованные массивы , ( ключ — является числом ).

Первый способ объявления массива

— с помощью ключевого слова array :

$arr = array ( ‘Ivanov’ , ‘Petrov’ , ‘Sidorov’ );
var_dump( $arr ) ;
?>
выведет:
array (size=3)
0 => string ‘Ivanov’ (length=6)
1 => string ‘Petrov’ (length=6)
2 => string ‘Sidorov’ (length=7)

— где string — строка, length=6 — длина (количество символов), 0,1,2 — ключи или индексы массива.

Вывод массива на экран

Для вывода массива на экран используют либо функцию var_dump() , либо функцию print_r() , либо с помощью тегов «» — которые используют форматированный вывод:

echo «

" ; 
print_r ( $arr ) ;
echo "

» ;
?>
выведет:
Array
(
[0] => Ivanov
[1] => Petrov
[2] => Sidorov
)

Обращение к элементу массива

— либо через квадратные скобки , либо через фигурные .
Чаще всего используются квадратные скобки.

echo $arr [ 0 ]; // выведет: Ivanov
echo $arr [ 1 ]; // выведет: Petrov
echo $arr < 2 >; // выведет: Sidorov
?>

Второй способ объявления массива

— с использованием короткой записи (с помощью квадратных скобок ).

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

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

Пример многомерного массива:

$arr2 = [ 1 , 2 , [ ‘banane’ , ‘orange’ , ‘apple’ ], 4 , ‘cat’ , 6 , 7 , 8 , 9 , 10 ,];

echo «

" ; 
print_r ( $arr2 );
echo "

» ;

// обращение к элементу вложенного массива (orange)
echo $arr2 [ 2 ][ 1 ];
echo ‘
‘ ;

// обращение к элементу вложенного массива (apple)
echo $arr2 [ 2 ][ 2 ];
echo ‘
‘ ;

// обращение к элементу вложенного массива (banane)
echo $arr2 [ 2 ][ 0 ];
?>
выведет:
Array
(
[0] => 1
[1] => 2
[2] => Array
(
[0] => banane
[1] => orange
[2] => apple
)
[3] => 4
[4] => cat
[5] => 6
[6] => 7
[7] => 8
[8] => 9
[9] => 10
)

orange — обращение к элементу вложенного массива (orange)
apple — обращение к элементу вложенного массива (apple)
banane — обращение к элементу вложенного массива (banane)

Нумерация массива

По умолчанию PHP нумерует массив с нуля, то есть, первый элемент — [0] , второй — [1] и т.д. Для изменения нумерации массива мы используем внутри массива дополнительный элемент — ключ . Здесь мы сами присваиваем ключи значениям массива(массив $arr3 ). Если, например, присвоим ключ первому элементу массива ( 2 => ‘Ivanov’ ) и далее нумерация не прерывается, то PHP начнет нумерацию с этого номера (массив $arr4 ).

Читайте также:  Hashmap java получить элемент

$arr3 = [ 2 => ‘Ivanov’ , 3 => ‘Petrov’ , 4 => ‘Sidorov’ ];

echo «

" ; 
print_r ( $arr3 );
echo "

» ;

$arr4 = [ 2 => ‘Ivanov’ , // наглядная запись массива
‘Petrov’ ,
‘Sidorov’
] ;

echo «

" ; 
print_r ( $arr4 );
echo "

» ;

echo $arr3 [ 4 ]; // обращение к четвертому элементу массива $arr3
?>
В обоих случаях выведет выведет:
Array
(
[2] => Ivanov
[3] => Petrov
[4] => Sidorov
)

Sidorov — обращение к четвертому элементу массива $arr3

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

— это массивы со строковым индексом ( ключ — является строкой ).

Эти массивы, например, используют для хранения информации о товарах в интернет-магазинах.

Пример ассоциативного массива:

$goods = [
// первый товар (массив)
[
‘title’ => ‘Nokia’ , // название товара
‘price’ => 100 , // цена
‘description’ => ‘Description’ // описание
],
// второй товар
[
‘title’ => ‘iPad’ ,
‘price’ => 200 ,
‘description’ => ‘Description’
]
];
echo «

" ; 
print_r ( $goods );
echo "

» ;

// название первого товара и его цена
echo $goods [ 0 ][ ‘title’ ] . ‘-‘ . $goods [ 0 ][ ‘price’ ];
echo ‘
‘ ;

// название второго товара и его цена
echo $goods [ 1 ][ ‘title’ ] . ‘-‘ . $goods [ 1 ][ ‘price’ ];
echo ‘
‘ ;
?>
результат выполнения:
Array
(
[0] => Array
(
[title] => Nokia
[price] => 100
[description] => Description
)
[1] => Array
(
[title] => iPad
[price] => 200
[description] => Description
)
)

Nokia-100 — название первого товара и его цена
iPad-200 —- название второго товара и его цена

Пример:
с помощью цикла while пройтись по массиву $goods и вывести все его элементы.

$goods = [
// первый товар (массив)
[
‘title’ => ‘Nokia’ , // название товара
‘price’ => 100 , // цена
‘description’ => ‘Description’ // описание
],
// второй товар
[
‘title’ => ‘iPad’ ,
‘price’ => 200 ,
‘description’ => ‘Description’
]
];
$i = 0 ;
while ( $i 1 ) <
echo ‘title’ . ‘-‘ . $goods [ $i ] [ ‘title’ ];
echo ‘
‘ ;
echo ‘price’ . ‘-‘ . $goods [ $i ] [ ‘price’ ];
echo ‘
‘ ;
echo ‘description’ . ‘-‘ . $goods [ $i ] [ ‘description’ ];
echo ‘
‘ ;
echo ‘
‘ ;
$i++ ;
>
?>
результат выполнения:

title-Nokia
price-100
description-Description

title-iPad
price-200
description-Description

Добавление нового элемента в конец данного массива и с заданным ключем :

$arr = array ( ‘Ivanov’ , ‘Petrov’ , ‘Sidorov’ );

// добавляем новый элемент в конец массива
$arr [] = ‘Pupkin’ ;

// Добавление нового элемента в конец массива с заданным ключем
$arr [ 15 ] = ‘Vaskin’ ;

echo ‘

' ; 
print_r ( $arr );
echo '

‘ ;
?>
выведет:
Array
(
[0] => Ivanov
[1] => Petrov
[2] => Sidorov
[3] => Pupkin
[15] => Vaskin
)

Если поставить ключ, который уже есть в массиве, то он будет перезаписан:

$arr = array ( ‘Ivanov’ , ‘Petrov’ , ‘Sidorov’ );

// первый элемент массива ‘Petrov’ будет перезаписан на ‘Pupkin’
$arr [ 1 ] = ‘Pupkin’ ;

echo ‘

' ; 
print_r ( $arr );
echo '

‘ ;
?>
выведет:
Array
(
[0] => Ivanov
[1] => Pupkin
[2] => Sidorov
)

Источник

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