Вывести значения ассоциативного массива php

Массивы

Массив (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 ).

$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
)

Источник

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

Массивы — способ хранить много похожей информации в одном месте.

Массив проще всего представить как много подписанных коробок при переезде. В каждой коробке может лежать что угодно, например, числа, строки, объекты или даже другие коробки.

Зачем нужны массивы

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

Каждая коробка — элемент массива, номер под ней — индекс. То, что лежит внутри коробки — значение элемента.

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

Чтобы создать массив в PHP напишем так:

Теперь есть два способа туда что-то добавить. Если мы знаем, на какое место в массиве вставить элемент, используем индекс.

$my_array[1] = "Кухня" $my_array[2] = "Спальня" 

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

$my_array[] = "Кухня" $my_array[] = "Спальня" 

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

По умолчанию счёт элементов массива идёт от нуля. То есть при обращении к коробкам нужно помнить, что у первой номер ноль, у второй — 1, и так далее.

Здесь у второго элемента массива номер 1, а значение — 2

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

$a[2] = 4; $a[4] = 16; $a[7] = 128; var_dump($a); 

Этот код создаст массив из трёх элементов, с номерами 2, 4 и 7. Это легко проверить, если запустить его:

array(3) < [2]=>int(4) [4]=> int(16) [7]=> int(128) > 

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

Это такие же массивы, только у них индекс не число, а строка. Или что угодно ещё. Неудобно подписывать коробки при переезде по номерам — но если написать «Кухня», «Спальня» или «Гостиная», то сразу будет понятно, где что.

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

Возьмём кухонную коробку, в которой лежат ложки, ножи и тарелки. Можно собрать её двумя способами. Так:

$kitchen = array("Spoons"=>"35", "Knifes"=>"3", "Plates"=>"12"); 
$kitchen['Spoons'] = "35"; $kitchen['Knifes'] = "3"; $kitchen['Plates'] = "12"; 

Тогда если нам нужно будет понять, сколько тарелок лежит в коробке, воспользуемся кодом $kitchen[‘Plates’]; .

Как вывести массив

Чтобы вывести всё содержимое ассоциативного массива (в нашем случае, кухонной коробки), воспользуемся циклом foreach , который перебирает все элементы внутри массива.

foreach($kitchen as $item => $item_count) < echo "Item=" . $item . ", Value text language-text">    

А это код страницы foo.php на PHP, который выведет данные формы, полученные через POST . Здесь мы используем те самые значения атрибутов name , чтобы получить данные из соответствующих полей.

То есть username , email и feedback — ключи, которые не отличаются от атрибута name в форме.

Получение данных через $_GET

Это такая же форма, как выше. Разница в method="get" — и чуть позже расскажу, в чём ещё.

Код для получения значений формы через $_GET очень похож на прошлый — нужно заменить POST на GET .

Значительная разница в том, что при загрузке страницы с таким кодом, в адресе страницы появятся данные из формы.

С получением данных через GET и POST можно поэкспериментировать в первой главе курса «Знакомство с PHP».

Получение массива из базы MySQL

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

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

$dbc = mysqli_connect('localhost', 'root', 'password', 'my_users'); $query = "SELECT first_name FROM members"; $result = mysqli_query($dbc, $query); $data_array = array(); while ($row = mysqli_fetch_assoc($result))

Разбираем код

$dbc = mysqli_connect('localhost', 'root', 'password', 'my_users'); 

Подключаемся к базе MySQL my_users по адресу localhost , от имени пользователя root , с паролем password .

$query = "SELECT phone FROM members"; 

Запрос — получить номера телефонов всех пользователей из таблицы members .

$result = mysqli_query($dbc, $query); 

Делаем запрос к базе с помощью существующей в PHP функции mysqli_query .

Заводим пустой массив для полученных данных.

while ($row = mysqli_fetch_assoc($result))  

В этой строчке начинаем построчно считывать результаты.

$data_array[$row['name']] = $row['value']; 

И если результаты есть, записываем их в ассоциативный массив.

Упражнения с массивами на PHP

Попробуйте тренажёр, где можно без установки PHP, прямо в браузере написать код для реального сайта. И заодно разобраться с массивами, циклами и тем, как работает вся эта магия.

«Доктайп» — журнал о фронтенде. Читайте, слушайте и учитесь с нами.

Источник

Читайте также:  Python warnings ignore all
Оцените статью