PHP масив: асоциативен, многомерен
Какво е PHP масив?
PHP масивът е променлива, която съхранява повече от една част от свързани данни в една променлива.
Мислете за масив като кутия шоколадови бонбони с прорези вътре.
Кутията представлява самия масив, докато интервалите, съдържащи шоколадови бонбони, представляват стойностите, съхранени в масивите.
Диаграмата по-долу илюстрира горния синтаксис.
Числови масиви
Числовите масиви използват число като ключове за достъп.
Ключът за достъп е препратка към слот за памет в променлива на масив.
Ключът за достъп се използва винаги, когато искаме да прочетем или да присвоим нова стойност на елемент от масив.
По-долу е синтаксисът за създаване на числов масив в php.
Пример за масив
<?php $variable_name[n] = value; ?>
Or
<?php $variable_name = array(n => value, …); ?>
ТУК,
- “$variable_name…” е името на променливата
- “[n]” е номерът на индекса за достъп на елемента
- „стойност“ е стойността, присвоена на елемента от масива.
Нека сега да разгледаме пример за числов масив.
Да предположим, че имаме 5 филма, които искаме да съхраним в масив от променливи.
Можем да използваме примера, показан по-долу, за да направим това.
<?php $movie[0] = 'Shaolin Monk'; $movie[1] = 'Drunken Master'; $movie[2] = 'American Ninja'; $movie[3] = 'Once upon a time in China'; $movie[4] = 'Replacement Killers'; ?>
Тук
Всеки филм получава индексен номер, който се използва за извличане или промяна на неговата стойност. Спазвайте следния код-
<?php $movie[0]="Shaolin Monk"; $movie[1]="Drunken Master"; $movie[2]="American Ninja"; $movie[3]="Once upon a time in China"; $movie[4]="Replacement Killers"; echo $movie[3]; $movie[3] = " Eastern Condors"; echo $movie[3]; ?>
Изход:
Once upon a time in China Eastern Condors
Както можете да видите от горните примери, работата с масиви в PHP, когато се работи с множество стойности от едно и също естество, е много лесна и гъвкава.
Алтернативно, горните променливи на масива могат да бъдат създадени и с помощта на следния код.
<?php
$movie = array(0 => "Shaolin Monk",
1 => "Drunken Master",
2 => "American Ninja",
3 => "Once upon a time in China",
4 =>"Replacement Killers" );
echo $movie[4];
?>
Изход:
Replacement Killers
PHP асоциативен масив
Асоциативният масив се различава от числовия масив в смисъл, че асоциативните масиви използват описателни имена за id ключове.
По-долу е синтаксисът за създаване на асоциативен масив в php.
<?php
$variable_name['key_name'] = value;
$variable_name = array('keyname' => value);
?>
ТУК,
- “$variable_name…” е името на променливата
- “['key_name']” е номерът на индекса за достъп на елемента
- „стойност“ е стойността, присвоена на елемента от масива.
Да предположим, че имаме група хора и искаме да зададем пола на всеки човек срещу имената му.
Можем да използваме асоциативен масив, за да направим това. Кодът по-долу ни помага да направим това.
<?php
$persons = array("Mary" => "Female", "John" => "Male", "Mirriam" => "Female");
print_r($persons);
echo "";
echo "Mary is a " . $persons["Mary"];
?>
ТУК,
Изход:
Array ( [Mary] => Female [John] => Male [Mirriam] => Female ) Mary is a Female
Асоциативният масив също е много полезен при извличане на данни от базата данни.
Имената на полетата се използват като id ключове.
PHP Многомерни масиви
Това са масиви, които съдържат други вложени масиви.
Предимството на многомерните масиви е, че те ни позволяват да групираме свързани данни заедно.
Нека сега да разгледаме практически пример, който имплементира php многоизмерен масив.
Таблицата по-долу показва списък с филми по категории.
| Заглавие на филм | категория |
|---|---|
| Розовата пантера | Комедия |
| Джон Инглиш | Комедия |
| Умирай трудно | действие |
| Expendables | действие |
| Властелинът на пръстените | Епопея |
| Ромео и Жулиета | Романтика |
| Не виждай зло, не чувай зло | Комедия |
Горната информация може да бъде представена като многоизмерен масив. Кодът по-долу показва изпълнението.
<?php
$movies =array(
"comedy" => array("Pink Panther", "John English", "See no evil hear no evil"),
"action" => array("Die Hard", "Expendables"),
"epic" => array("The Lord of the rings"),
"Romance" => array("Romeo and Juliet")
);
print_r($movies);
?>
ТУК,
Изход:
Array ( [comedy] => Array ( [0] => Pink Panther [1] => John English [2] => See no evil hear no evil ) [action] => Array ( [0] => Die Hard [1] => Expendables ) [epic] => Array ( [0] => The Lord of the rings ) [Romance] => Array ( [0] => Romeo and Juliet ) )
Друг начин за дефиниране на същия масив е както следва
<?php
$film=array(
"comedy" => array(
0 => "Pink Panther",
1 => "john English",
2 => "See no evil hear no evil"
),
"action" => array (
0 => "Die Hard",
1 => "Expendables"
),
"epic" => array (
0 => "The Lord of the rings"
),
"Romance" => array
(
0 => "Romeo and Juliet"
)
);
echo $film["comedy"][0];
?>
Изход:
Pink Panther
Забележка: числовият масив на филмите е вложен в асоциативния масив на категориите
PHP масиви: Operaтори
| OperaTor | Име | Descriptйон | Как да го направим | Продукция |
|---|---|---|---|---|
| х + у | съюз | Комбинира елементи от двата масива |
<?php
$x = array('id' => 1);
$y = array('value' => 10);
$z = $x + $y;
?>
|
Масив ([id] => 1 [стойност] => 10) |
| X == y | равен | Сравнява два масива, ако са равни и връща true, ако да. |
<?php
$x = array("id" => 1);
$y = array("id" => "1");
if($x == $y)
{
echo "true";
}
else
{
echo "false";
}
?>
|
Вярно или 1 |
| X === y | Идентичен | Сравнява както стойностите, така и типове данни |
<?php
$x = array("id" => 1);
$y = array("id" => "1");
if($x === $y)
{
echo "true";
}
else
{
echo "false";
}
?>
|
Невярно или 0 |
| X != y, x <> y | Не е равно |
<?php
$x = array("id" => 1);
$y = array("id" => "1");
if($x != $y)
{
echo "true";
}
else
{
echo "false";
}
?>
|
Невярно или 0 | |
| X !== y | Неидентичен |
<?php
$x = array("id" => 1);
$y = array("id" => "1");
if($x !== $y)
{
echo "true";
}
else
{
echo "false";
}
?>
|
Вярно или 1 |
PHP функции за масиви
Функция за броене
Функцията count се използва за преброяване на броя елементи, които съдържа php масив. Кодът по-долу показва изпълнението.
<?php
$lecturers = array("Mr. Jones", "Mr. Banda", "Mrs. Smith");
echo count($lecturers);
?>
Изход:
3
функция is_array
Функцията is_array се използва за определяне дали дадена променлива е масив или не. Нека сега да разгледаме пример, който имплементира функциите is_array.
<?php
$lecturers = array("Mr. Jones", "Mr. Banda", "Mrs. Smith");
echo is_array($lecturers);
?>
Изход:
1
Вид
Тази функция се използва за сортиране на масиви по стойности.
Ако стойностите са буквено-цифрови, той ги сортира по азбучен ред.
Ако стойностите са числови, той ги сортира във възходящ ред.
Той премахва съществуващите ключове за достъп и добавя нови цифрови клавиши.
Резултатът от тази функция е числов масив
<?php
$persons = array("Mary" => "Female", "John" => "Male", "Mirriam" => "Female");
sort($persons);
print_r($persons);
?>
Изход:
Array ( [0] => Female [1] => Female [2] => Male )
ksort
Тази функция се използва за сортиране на масива с помощта на ключа. Следващият пример илюстрира използването му.
<?php
$persons = array("Mary" => "Female", "John" => "Male", "Mirriam" => "Female");
ksort($persons);
print_r($persons);
?>
Изход:
Array ( [John] => Male [Mary] => Female [Mirriam] => Female )
асортимент
Това функция се използва за сортиране на масива с помощта на стойностите. Следващият пример илюстрира използването му.
<?php
$persons = array("Mary" => "Female", "John" => "Male", "Mirriam" => "Female");
asort($persons);
print_r($persons);
?>
Изход:
Array ( [Mary] => Female [Mirriam] => Female [John] => Male )
Защо да използваме масиви?
- Съдържанието на масивите може да се разтяга,
- Масивите лесно помагат за групиране на свързана информация, като например данни за влизане в сървъра, заедно
- Масивите помагат за писане на по-чист код.
Oбобщение
- Масивите са специални променливи с капацитет за съхраняване на множество стойности.
- Масивите са гъвкави и могат лесно да се разтягат, за да поемат повече стойности
- Числовите масиви използват числа за ключовете на масива
- PHP Associative array използва описателни имена за ключове на масива
- Многомерните масиви съдържат други масиви в себе си.
- Функцията count се използва за получаване на броя на елементите, които са били съхранени в масив
- Функцията is_array се използва за определяне дали дадена променлива е валиден масив или не.
- Други функции за масиви включват sort, ksort, assort и др.



