Массивы в PHP. Работа с массивами в PHP.


В данной статье рассматривается работа с массивами в PHP (основы). Массивы в PHP – это тип данных, который позволяет сохранять несколько переменных в одной.

Вот один простой пример:

1
2
3
4
<?php
$products=array("шоколад","сок","пирожное");
echo "Я люблю " . $products[0] . ", " . $products[1] . " и " . $products[2] . ".";
?>

В приведенном выше примере $products – это массив, в котором мы сохранили несколько различных продуктов. Далее мы вывели все эти продукты, обращаясь к каждому через “индексы” (ключи) : 0, 1 и 2.

Конечно, отдельные значения можно хранить и в отдельных переменных, например, так:

1
2
3
$product1 = “шоколад”;
$product2 = “сок”;
$product3 = “пирожное”;

Это, конечно, хорошо, но давайте представим, что нам потребовалось вдруг перебрать все эти элементы. Как тут быть? Писать код под каждую переменную? Это долго и неудобно. Решение – использование массивов.
Используя циклы мы можем на каждой итерации (шаге) получить доступ к очередному элементу, благодаря индексам (ключам).

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

В php не требуется делать объявление массива. Создать массив мы можем, используя функцию array():

1
$product = array();

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

1
$products = array("шоколад","сок","пирожное");

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

1. ”Индексируемые” массивы или “автомассивы”. Примеры такого массива мы уже приводили выше. Особенностью данных массивов является то, что они имеют числовые индексы, которые создаются автоматически (“на лету”). Нумерация элементов начинается с 0.

Как определить длину (размер) индексируемого массива. Используем функцию count():

1
2
3
4
<?php
$products = array("шоколад","сок","пирожное");
echo count($products);//выведет 3
?>

Перебор элементов. Перебрать все элементы автомассива можно с помощью конструкции for или foreach:

1
2
3
4
5
6
7
<?php
$products = array("шоколад","сок","пирожное");
for($i = 0; $i < count($products);$i++):
   echo $products[$i];
   echo "<br>";
endfor;
?>
1
2
3
4
5
6
7
<?php
$products = array("шоколад","сок","пирожное");
foreach($products as $product):
   echo $product;
   echo "<br>";
endforeach;
?>

Чтобы добавить новый элемент в массив (осуществить запись в массив), нам достаточно выполнить следующую строку:

1
2
3
<?php
$products[] = “новый продукт”;
?>

Элементу будет автоматически присвоен новый числовой индекс.

2. Ассоциативные массивы. Особенность ассоциативных массивов – это строковые имена ключей элементов вместо числовых индексов.

Мы можем создать ассоциативный массив двумя способами:

1
$cars_age=array("Mazda"=>"3","Toyota"=>"1","Honda"=>"5");

или

1
2
3
$cars_age['Mazda'] = 3;
$cars_age['Toyota'] = 1;
$cars_age['Honda'] = 5;

Теперь любой элемент доступен через присвоенный ему ключ:

1
echo $cars_age['Honda'];//выведет 5

Перебор всех элементов ассоциативного массива осуществляется следующим образом:

1
2
3
4
5
6
7
8
<?php
$cars_age=array("Mazda"=>"3","Toyota"=>"1","Honda"=>"5");
 
foreach($cars_age as $car => $age){
  echo "Автомобиль " . $car . " имеет возраст: " . $age;
  echo "<br>";
}
?>

3. Многомерные массивы содержат в качестве элементов другие массивы:

1
2
3
4
5
6
7
8
<?php
// создаем двумерный массив:
$cars = array(
  array("Mazda",100,96),
  array("Toyota",60,59),
  array("Honda",110,100)
);
?>

Получить значения какого-либо элемента данного массива можно следующим образом:

1
2
3
4
5
<?php
echo $cars[0][0];//выведет Mazda
echo $cars[0][1];//выведет 100
…
?>

Мы можем создать и трехмерный массив:

1
2
3
4
5
6
7
8
9
10
11
12
$products = array(
  "drinks"=>array(
  "milk",
  "water",
  "cola"
  ),
  "fruits"=>array(
  "apple",
  "orange",
  "cherry"
  )
);

В результате мы получим следующую структуру массива:
Array
(
[drinks] => Array
(
[0] => milk
[1] => water
[2] => cola
)

[fruits] => Array
(
[0] => apple
[1] => orange
[2] => cherry
)

)

Теперь получаем значение нужного элемента:

1
2
3
<?php
echo $products['drinks'][0] ; // возвращает "milk"
?>

вывод массива в PHP. Вывести любой массив можно с помощью функции print_r(), например:

1
2
3
<?php
print_r($products);
?>

Удалить элемент в массиве можно следующим образом:

1
2
3
4
<?php
unset($products[3]);//для простого индексируемого массива
unset($products['drinks'][0]);
?>

При этом при удалении элемента индексы других элементов остаются неизменными.

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

Сортировка массивов
array_search – поиск значения в массиве





Другие посты

Категория: PHP-скрипты

Оставить комментарий