Массивы
Массив в PHP это упорядоченная структура данных, которая связывает значения и ключи.
Создание массива
Обычный
// 1 вариант
$myFruits = array("Apple", "Banana", "Cashew", "Mango");
//2 вариант (ассоциативный)
$myFruits = array(
"fruit1" => "Apple",
"fruit2" => "Banana",
"fruit3" => "Cashew",
"fruit4" => "Mango",
);
//3 вариант
$myFruits["fruit1"] = "Apple";
$myFruits["fruit2"] = "Banana";
$myFruits["fruit3"] = "Cashew";
$myFruits["fruit4"] = "Mango";
В ассоциативных массивах имена ключей присваиваются, их тип должен быть либо string, либо int. Значение может быть любым типом.
В других случаях ключ будет числовым с порядковым номером от нуля с прибавлением единицы.
Многомерный
// 1 вариант
$myFruits = array(
array("Apple", "Avocado", "Apricot"),
array("Banana", "Blackeberry", "Babaco"),
array("Cashew", "Cherry", "Canary melon"),
array("Mango", "Melon", "Miracle fruit"),
);
//2 вариант
$myFruits[0][0] = "Apple";
$myFruits[0][1] = "Avocado";
$myFruits[2][0] = "Cashew";
$myFruits[3][0] = "Mango";
...
Просмотр массива
В большинстве случаев вам может потребоваться распечатать массив для отладки или визуальных целей.
print_r()
Функция отображает структурированную информацию о переменной в удобочитаемом формате.
// 1 вариант
$myFruits = array("Apple", "Banana", "Cashew", "Mango");
print_r($myFruits);
//отобразит
Array ( [0] => Apple [1] => Banana [2] => Cashew [3] => Mango )
//2 вариант
$myFruits = array(
"fruit1" => "Apple",
"fruit2" => "Banana",
"fruit3" => "Cashew",
"fruit4" => "Mango",
);
print_r($myFruits);
//отобразит
Array ( [fruit1] => Apple [fruit2] => Banana [fruit3] => Cashew [fruit4] => Mango )
//3 вариант (так-же подходит для изменения массива)
$myFruits[0][0] = "Apple";
$myFruits[0][1] = "Avocado";
$myFruits[2][0] = "Cashew";
$myFruits[3][0] = "Mango";
print_r($myFruits);
//отобразит
Array ( [fruit1] => Apple [fruit2] => Banana [fruit3] => Cashew [fruit4] => Mango )
var_dump()
Отличие заключается в том, что она отображает тип данных того, что вы печатаете, включая каждый элемент массива.
// 1 вариант
$myFruits = array("Apple", "Banana", "Cashew", "Mango");
var_dump($myFruits);
//отобразит
array(4) { [0]=> string(5) "Apple" [1]=> string(6) "Banana" [2]=> string(6) "Cashew" [3]=> string(5) "Mango" }
//2 вариант
$myFruits = array(
"fruit1" => "Apple",
"fruit2" => "Banana",
"fruit3" => "Cashew",
"fruit4" => "Mango",
);
var_dump($myFruits);
//отобразит
array(4) { ["fruit1"]=> string(5) "Apple" ["fruit2"]=> string(6) "Banana" ["fruit3"]=> string(6) "Cashew" ["fruit4"]=> string(5) "Mango" }
//3 вариант
$myFruits[0][0] = "Apple";
$myFruits[0][1] = "Avocado";
$myFruits[2][0] = "Cashew";
$myFruits[3][0] = "Mango";
var_dump($myFruits);
//отобразит
array(4) { ["fruit1"]=> string(5) "Apple" ["fruit2"]=> string(6) "Banana" ["fruit3"]=> string(6) "Cashew" ["fruit4"]=> string(5) "Mango" }
Доступ к элементам массива
Чтобы получить значение, нужно указать имя ключа, если массив не ассоциативный, то порядковый номер который начинается с нуля.
// 1 вариант
$myFruits = array("Apple", "Banana", "Cashew", "Mango");
$data=$myFruits[1];
//загрузит
"Banana"
//2 вариант
$myFruits = array(
"fruit1" => "Apple",
"fruit2" => "Banana",
"fruit3" => "Cashew",
"fruit4" => "Mango",
);
$data=$myFruits["fruit3"];
//загрузит
"Cashew"
//3 вариант
$myFruits = array(
array("Apple", "Avocado", "Apricot"),
array("Banana", "Blackeberry", "Babaco"),
array("Cashew", "Cherry", "Canary melon"),
array("Mango", "Melon", "Miracle fruit"),
);
$data=$myFruits[1][2];
//загрузит
"Babaco"
Функции массива
count()
Количество значений в массиве. Длина массива.
$myFruits = array("Apple", "Banana", "Cashew", "Mango");
echo count($myFruits);//4
array_push()
Добавляет указанный элемент после последнего элемента в массиве. Через запятую можно передать два и более значения.
$myFruits = array("Apple", "Banana", "Cashew", "Mango");
array_push($myFruits, "Avocado");
print_r($myFruits); // Array ( [0] => Apple [1] => Banana [2] => Cashew [3] => Mango [4] => Avocado )
array_pop()
Удаляет элемент из конца массива. Это означает, что он может быть полезен в структурах данных на основе стека.
$myFruits = array("Apple", "Banana", "Cashew", "Mango");
array_pop($myFruits);
print_r($myFruits); // Array ( [0] => Apple [1] => Banana [2] => Cashew )
array_shift()
Удаляет первый элемент массива, а не последний. Таким образом, это полезно в структурах данных на основе очередей.
$myFruits = array("Apple", "Banana", "Cashew");
array_shift($myFruits);
print_r($myFruits); // Array ( [0] => Banana [1] => Cashew )
array_unshift()
Добавляет один или несколько элементов в начало массива.
$myFruits = array("Apple", "Banana", "Cashew");
array_unshift($myFruits, "Avocado");
print_r($myFruits); // Array ( [0] => Avocado [1] => Apple [2] => Banana [3] => Cashew )
array_splice()
Удаляет элемент из массива и заменяет его указанной заменой.
Синтаксис array_splice(массив, с какой позиции замена, сколько позиций, на что заменить)
$myFruits = array("Apple", "Banana", "Cashew");
array_splice($myFruits, 1, 1, "Avocado");
print_r($myFruits); // Array ( [0] => Apple [1] => Avocado [2] => Cashew )
Через запятую можно добавить несколько элементов.
sort()
Изменяет исходный массив, переставляя его элементы в порядке возрастания.
$myNums = [4, 2, 1, 3, 5];
sort($myNums);
print_r($myNums);
/*
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
)
*/
rsort()
Сортирует массив в порядке убывания.
$myNums = [4, 2, 1, 3, 5];
rsort($myNums);
print_r($myNums);
/*
Array
(
[0] => 5
[1] => 4
[2] => 3
[3] => 2
[4] => 1
)
*/
array_reverse()
Создает новый массив с элементами в обратном порядке.
$myFruitsArr = array ("Apple", "Banana", "Cashew", "Mango");
$reversedArr = array_reverse($myFruitsArr);
print_r($reversedArr);
/*
Array
(
[0] => Mango
[1] => Cashew
[2] => Banana
[3] => Apple
)
*/
array_merge()
Объединяет два или более массива.
$array1 = [1, 2, 3];
$array2 = [4, 5, 6, 7, 8];
$result = array_merge($array1, $array2);
print_r($result);
/*
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
[5] => 6
[6] => 7
[7] => 8
)
*/
array_search()
Используется для поиска заданного значения в массиве. Если значение найдено, оно возвращает ключ значения.
$myFruitsArr = array(
"fruit1" => "Apple",
"fruit2" => "Banana",
"fruit3" => "Cashew",
"fruit4" => "Mango",
"fruit5" => "Avocado",
"fruit6" => "Pineapple"
);
$checkForCashew = array_search('Cashew', $myFruitsArr);
echo $checkForCashew; // fruit3
in_array()
Используется для проверки наличия определенного элемента в массиве.
$myFruitsArr1 = array("Apple", "Banana", "Cashew", "Mango");
var_dump(in_array("Banana", $myFruitsArr1)); // bool(true)
var_dump(in_array("banana", $myFruitsArr1)); // bool(false)