PHP масив: асоциативен, многомерен

⚡ Умно обобщение

PHP масивите съхраняват много свързани стойности в една променлива, което улеснява групирането и обработката на свързани данни. Това ръководство обхваща числови, асоциативни и многомерни масиви, операторите за сравнение на масиви и основни функции като count, sort, ksort и asort.

  • 🧰 Какво правят масивите: Масивът съдържа множество свързани стойности в една променлива, достъпни чрез числови или именувани ключове, вместо чрез много отделни променливи.
  • 🔢 Числови масиви: Числовите масиви използват целочислени индексни ключове, започващи от нула, за да прочетат или присвоят всеки съхранен елемент.
  • ???? ️ Асоциативни масиви: Асоциативните масиви използват описателни низови ключове, което е идеално за сдвояване на имена със стойности или mapping полета на базата данни.
  • 🧬 Многоизмерно: Многоизмерен масив влага масиви в друг масив, т.е. групаping структурирани данни, като например филми, организирани по категории.
  • ️ Array Operaторове: Операторът за обединение обединява масиви, докато == проверява равенството на стойностите, а === също така проверява реда на ключовете и типовете данни.
  • 🔧 Функции за масиви: count, is_array, sort, ksort и asort отчитат и пренареждат съдържанието на масиви по стойност или по ключ.
  • 🤖 AI Assist: Инструментите с изкуствен интелект могат да превърнат редовете от базата данни в асоциативни масиви и да помогнат за отстраняване на грешки в объркващи многомерни структури от масиви.

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 масив

На всеки филм е даден индексен номер, който се използва за извличане или промяна на неговата стойност. Следвайте следния код.

<?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 асоциативен масив

Асоциативните масиви се различават от числовите масиви по това, че използват описателни имена за идентификаторни ключове.

По-долу е показан синтаксисът за създаване на асоциативен масив в 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"];
?>

ТУК,

PHP масив

Изход:

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);
?>

ТУК,

PHP масив

Изход:

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

Забележка: числовият масив movies е вложен в асоциативния масив categories.

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 Не е равно Връща true, ако двата масива не са равни
<?php
$x = array("id" => 1);

$y = array("id" => "1");

if($x != $y)
{
echo "true";
}
else
{
echo "false";
}
?>
Невярно или 0
x !== y Неидентичен Връща true, ако двата масива не са идентични по стойност или тип
<?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 )

асортимент

Това функция се използва за сортиране на масива, използвайки стойностите, докато keeping клавишите. Следващият пример илюстрира употребата му.

<?php

$persons = array("Mary" => "Female", "John" => "Male", "Mirriam" => "Female");

asort($persons);

print_r($persons);

?>

Изход:

Array ( [Mary] => Female [Mirriam] => Female [John] => Male )

Защо да използваме масиви?

  • Съдържанието на масивите може да бъде разтегнато, за да съдържа повече стойности.
  • Масивите лесно помагат за групиране на свързана информация, като например данни за вход в сървъра.
  • Масивите помагат за писане на по-чист код.

Въпроси и Отговори

Цикълът foreach е най-разпространеният начин. Напишете foreach ($array as $value), за да прочетете всяка стойност, или foreach ($array as $key => $value), за да прочетете както ключа, така и стойността на всеки елемент в масива.

sort() пренарежда стойностите и преиндексира масива с нови числови ключове, губейки оригиналните ключове. asort() сортира по стойност, но запазва всяка стойност обвързана с оригиналния ѝ ключ, което е важно за асоциативните масиви.

Използвайте array_push() или $arr[] = value за добавяне и array_pop() или array_shift() за премахване от края или началото. За да изтриете конкретен елемент по ключ, използвайте функцията unset().

Да. Изкуственият интелект може да напише цикъл за извличане, който преобразува всеки ред в асоциативен масив, ключов по име на колона, и да предложи използването на методи за извличане, които връщат асоциативни масиви директно от драйвера на вашата база данни.

Да. Поставете изхода на print_r или var_dump и изкуственият интелект може да обясни влагането, да покаже точния път до стойност, като например $film['comedy'][0], и да открие несъответстващи ключове или нива.

Обобщете тази публикация с: