# Массивы

**Инициализация:**

```php
 $addresses = array("spam@cyberpromo.net", "abuse@example.com", "root@example.com" );
 $price = аггау( 
'прокладка'=> 15.29, 
'диск'=> 75.25, 
'шина' => 50.00 
); 

```

```php
$addresses[0] = "spam@cyberpromo.net"; 
$ргiсе['прокладка'] = 15.29;
```

**Добавление в конец:**

```php
$family[] = "Павел";
```

range(1, 50); создает массив последовательных чисел или символов между двумя заданными значениями.

count($family); кол-во элементов

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

```php
$row0 = array( 1, 2, 3 ); 
$гоw1 = array(4,  5, 6); 
$row2 = array(7, 8, 9); 
$multi = array($гоw0, $гоw1, $row2);
```

**Копирование нескольких значений и вырезка:**

```php
list ($var1, ... ) = $аггау; 
```

Оставшиеся значения игнорируются. Если в массиве меньше - NULL.

```php
$subset = array_slice(array, offset,length); 
```

Если массив ассоциативный, то ключи заменяются на цифры.

```php
$nums = range(1, 7); 
$rows = array_chunk($nums, З);
```

rows\[0\] = (1,2,3); rows\[1\] = (4,5,6); rows\[3\] = (7);

**Обработка всего массива**

array\_sum(array) Возвращает сумму значений

array\_merge(arr1, arr2, ...) Объединение массивов

array\_diff(arr1, arr2) Разница

array\_filter(arr, callback) Каждое значение элемента передается в callback, в возвращаемом - только элементы, для которых callback вернул true. Ключи массива сохраняются.

**Использование в виде множеств**

```php
function arrayUnion($a, $b){
  $union = array_merge($a, $b);
  $union = array_unique($union);
  return $union;
  }
```

**Стек**

При помощи array\_push, array\_pop

**Разное**

array\_keys(array); - массив ключей

array\_key\_exists(key, аггау) - проверка существования ключа в массиве

in\_array(to\_find, аггау \[, strict\]) - поиск значений

$removed = array\_splice(array, start \[, length \[, replacement\] \]); - удаление/вставка элементов в массив

extroct{) - создание переменных из массива (ключи - имена)

compact() - из переменных массив

array\_walk{array, callable); - применение к каждому элементу функции, третий параметр - параметр функции (для нескольких - массив)

array\_search(элем, масс) - возвращает индекс найденного элемента

 in\_array() - есть или нет в массиве элемент

array\_reverse() - обратный порядок массива

array\_flip() - массив, в котором ключи стали значениями и наоборот

<table border="1" id="bkmrk-%D0%9F%D0%BE-%D0%B2%D0%BE%D0%B7%D1%80%D0%B0%D1%81%D1%82%D0%B0%D0%BD%D0%B8%D1%8E-%D0%9F%D0%BE-%D1%83%D0%B1" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 25.0298%;"></col><col style="width: 25.0298%;"></col><col style="width: 25.0298%;"></col><col style="width: 25.0298%;"></col></colgroup><thead><tr><td>  
</td><td>По возрастанию</td><td>По убыванию</td><td>Пользовательская</td></tr></thead><tbody><tr><td>Сортирует по значениям, затем обновляет индексы</td><td>sort()</td><td>rsort()</td><td>usort()</td></tr><tr><td>По значениям</td><td>asort()</td><td>arsort()</td><td>ausort()</td></tr><tr><td>По ключам</td><td>ksort()</td><td>krsort()</td><td>kusort()</td></tr></tbody></table>

Пользовательская сортировка требует предоставления функции, ко­торая принимает два значения и возвращает значение, которое определяет порядок двух переданных значений в отсортированном массиве. Функция должна вернуть 1, если первое значение больше, чем второе, -1, если первое значение меньше, чем \_второе и 0, если значения равны с точки зрения ва­шей функции сортировки.