телевизори. Конзоли. Проектори и аксесоари. Технологии. Цифрова телевизия

Обхождане на двумерни масиви в php. Използване на многомерни масиви в PHP. PHP какво е асоциативен масив

$arr [ 1 ] = "PHP" ;
$arr [ 2 ] = "MySQL" ;
$arr [ 3 ] = "Apache" ;
?>

Елементите на масива могат да се използват в двойни кавички точно като обикновените променливи, така че кодирайте

echo "$arr [1] $arr [2] $arr [3]";
?>

$arr [ "first" ] = "PHP" ;
$arr [ "second" ] = "MySQL" ;
$arr [ "third" ] = "Apache" ;
?>

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

echo "$arr [първо] $arr [второ] $arr [трето]";
?>

Тъй като асоциативните масиви нямат индекси, беше въведен специален тип цикъл за тяхното преминаване - за всеки:

foreach($arr като $key => $value)
{
echo " $key = $value
" ;
}
?>

В резултат на цикъла ще бъдат изведени три реда

Първо = PHP
второ = MySQL
трети = Apache

Конструкцията "$key =>", която позволява достъп до ключа на масива на всеки от циклите, не е задължителна и може да бъде пропусната:

foreach($arr като $value)
{
echo " $стойност
" ;
}
?>

Редица функции също ви позволяват да връщате масиви, например функцията файл (), който чете файл и връща съдържанието му като масив. Всеки елемент от масива отговаря на един ред.

$arr = файл ("текст.txt");
за ($i = 0; $i< count ($arr ); $i ++)
{
ехо $arr [ $i ]. "
" ;
}
?>

Друга полезна функция е функцията експлодирам (), което ви позволява да разделите низ на няколко фрагмента, всеки от които е поставен в отделен елемент от масива:

$str = "345|[имейл защитен]|http://www.сайт|вход|парола";
$arr = разрушаване ("|", $str);
за ($i = 0; $i< count ($arr ); $i ++)
{
ехо $arr [ $i ]. "
" ;
}
?>

Резултатът от скрипта може да изглежда така:

345
[имейл защитен]
http://www.сайт
Влизам
парола

Има и обратна функция - implode(), която комбинира елементи от масива в низ, използвайки даден разделител:

$arr = "345";
$arr = " [имейл защитен]" ;
$arr = "http://www.сайт" ;
$arr = "влизане";
$arr = "парола";
$str = implode ("##", $arr);
ехо $str; //345##[имейл защитен]##http://www.
?>

Коментирайте

Като цяло има много функции, които изкормват низ; разглеждането на всички тях е извън обхвата на тази статия.

Можете да премахнете един елемент от масив с помощта на функцията unset()и можете да проверите съществуването на масив с помощта на функцията isset(). Нека дефинираме масив от 10 елемента и да унищожим всеки четен елемент.

unset($arr [0], $arr [2], $arr [4], $arr [6], $arr [8]);
// Проверка дали съществуват елементи от масива
за ($i = 0; $i< 10 ; $i ++)
{
if(isset($arr [ $i ])) echo "Елементът $arr [ $i ] е дефиниран
" ;
else echo "Елемент $arr [ $i ] неопределен
"
;
}
?>

Резултатът от скрипта от ще бъдат следните редове

Елементът $arr е недефиниран
Елементът $arr е дефиниран
Елементът $arr е недефиниран
Елементът $arr е дефиниран
Елементът $arr е недефиниран
Елементът $arr е дефиниран
Елементът $arr е недефиниран
Елементът $arr е дефиниран
Елементът $arr е недефиниран
Елементът $arr е дефиниран

Използване на функцията unset()можете да унищожите целия масив наведнъж.

$arr = масив (9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
изключване ($ arr);
if(isset($arr )) ехо „Дефиниран масив“;
иначе ехо „Масивът не е дефиниран“;
?>

Преди това масивите се изхвърляха с помощта на цикъл, но PHP предоставя специална функция за изхвърляне на масив print_r(). Функцията е фокусирана върху изход към конзолен поток, така че когато извеждате резултати в прозорец на браузър, е по-добре да го рамкирате с тагове

И
:

$arr = "345";
$arr = " [имейл защитен]";
$arr = "http://www.сайт";
$arr = "вход";
$arr = "парола";
ехо "

";
print_r($arr);
ехо " ";
?>

Резултатът от скрипта изглежда така:

Масив
=> 345
=> [имейл защитен]
=> http://www.сайт
=> влизане
=> парола
)

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

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

Да предположим, че трябва да получите следната таблица:

За да направите това, нека създадем двуизмерен масив:

$arr = array(array('Vasya' , 'locksmith' , 2500 ),
масив ('Миша', 'строител', 3000),
array('Андрей', 'шофьор', 2700));
?>

Сега таблицата може да бъде показана с помощта на следния код:

за ($i = 0; $i< 3 ; $i ++)
{
за ($j = 0; $j< 3 ; $j ++)
{
ехо " | " . $arr[$i][$j];
}
ехо "
" ;
}
?>

Резултат:

| Вася | ключар | 2500
| Миша | строител | 3000
| Андрей | шофьор | 2700

Можете също така да използвате триизмерни, четириизмерни и т.н. масиви.

Операции с масиви (колекция от рецепти)

1) Определяне на броя на елементите в масив броя():

Нека създадем масив $name:

?>

За да определите броя на елементите в масив, можете да направите следното:

ехо „Брой елементи в масива- . брой ($ име);
?>

Резултат:

Брой елементи в масива – 8

2) Комбиниране на масиви

а) Създайте два асоциативни масива $a и $b:

$a = масив (“a” => ”aa” , “b” => “bb” );
$b = масив (“c” => ”cc” , “d” => “dd” );
?>

Да предположим, че трябва да създадете масив $c, който ще съдържа и двата елемента от масива $a и масива $b:

$a = масив("a" => "aa" , "x" => "xx" );
$b = array("c" => "cc" , "d" => "dd" );
$c = $a + $b;
ехо "

"
;

print_r($c);
ехо "
" ;
?>

Резултат:

Масив
[a] => aa
[x] => xx
[c] => cc
[d] => дд
)

b) Създайте два числови масива $a и $b:

$a = масив (10, 20);
$b = масив (100, 200, 300, 400, 500);
?>

Те вече не могат да се комбинират с помощта на конструкцията $c = $a + $b;. За да ги комбинирате ще трябва да използвате функцията array_merge():

$c = array_merge ($a, $b);
?>

3) Сортиране на масиви

Нека използваме масива $name:

$name = array("Boss" , "Lentin" , "NAV" , "Endless" , "Dragons" , "SiLeNT" , "Doctor" , "Lynx" );
?>

Да предположим, че искате да сортирате масив по азбучен ред, за това можете да използвате следния код:

сортиране ($ име);
ехо "

"
;

print_r($name);
ехо "
" ;
?>

Резултат:

Масив
=> Шефе
=> Доктор
=> Дракони
=> Безкраен
=> Летин
=> Рис
=>NAV
=> SiLeNT
)

Да предположим, че трябва да изберете най-краткия елемент (който има най-малък брой знаци) от масива $name, в този случай можете да използвате кода:

$name = array("Boss" , "Lentin" , "NAV" , "Endless" , "Dragons" , "SiLeNT" , "Doctor" , "Lynx" );
$min = strlen($name[0]);
$name = $name [0];
за ($i = 1; $i< count ($name ); $i ++)
{
$len = strlen ($name [ $i ]);
ако ($len< $min )
{
$nam = $name [ $i ];
$min = strlen ($nam);
}
}
ехо "Най-къса дължина - ". $nam ;
?>

4) Преместване вътре в масив

Нека създадем масив $num:

$num = масив (1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
?>

Да предположим, че искате да покажете елементите на масива в обратен ред, в този случай можете да използвате кода:

$end = край ($num);
докато ($end)
{
ехо $край. "-" ;
$end = предишен ($num);
}
?>

Резултат:

10 - 9 - 8 - 7 - 6 - 5 - 4 - 3 - 2 – 1

Горният код може да бъде модифициран:

$num = диапазон (1, 10);
print_r(масив_обратен($num));
?>

функция диапазон (1,10)създава масив (1,2,3,4,5,6,7,8,9,10) с произволно подреждане на елементи. функция array_reverse()взема масив и подрежда елементите в обратен ред (10,9,8,7,6,5,4,3,2,1)

Функции следващия(), всеки ()премества показалеца един елемент напред. функция нулиране()връща указател към 1 елемент в масива. Нека използваме масива $num.

Често трябва да преминете през всички елементи на PHP масив и да извършите някаква операция върху всеки елемент. Например, можете да изведете всяка стойност в HTML таблица или да дадете на всеки елемент нова стойност.

В този урок ще разгледаме конструкцията foreach при организиране на цикъл върху индексирани и свързани масиви.

Преминаване през стойностите на елемента

Най-простият случай на използване на foreach е да преминете през стойности в индексиран масив. Основен синтаксис:

Foreach ($array като $value) ( ​​​​// Направете нещо с $value ) // Тук кодът се изпълнява след завършване на цикъла

Например, следният скрипт преминава през списъка с директори в индексиран масив и отпечатва името на всеки:

$directors = array("Алфред Хичкок", "Стенли Кубрик", "Мартин Скорсезе", "Фриц Ланг"); foreach ($directors като $director) ( echo $director . "
"; }

Горният код ще изведе:

Алфред Хичкок Стенли Кубрик Мартин Скорсезе Фриц Ланг

Цикъл ключ-стойност

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

Foreach ($array as $key => $value) ( ​​​​// Направете нещо с $key и/или $value ) // Тук кодът се изпълнява след завършване на цикъла

Пример за организиране на цикъл през свързан масив с информация за филми, показващ ключа на всеки елемент и неговата стойност в HTML списъка с дефиниции:

$movie = array("title" => "Rear Window", "director" => "Alfred Hitchcock", "year" => 1954, "minutes" => 112); ехо "

"; foreach ($movie като $key => $value) ( ​​​​echo "
$ключ:
"; ехо"
$стойност
"; ) ехо "
";

Когато се изпълни, този скрипт ще изведе:

Заглавие: Rear Window режисьор: Алфред Хичкок година: 1954 минути: 112

Промяна на стойността на елемент

Какво ще кажете за промяна на стойността на елемент, докато преминава цикълът? Можете да опитате този код:

Foreach ($myArray като $value) ( ​​​​$value = 123; )

Въпреки това, ако го стартирате, ще откриете, че стойностите в масива не се променят. Причината е, че foreach работи с копиестойности на масива, а не с оригинала. По този начин оригиналният масив остава непокътнат.

За да промените стойностите на масива, от които се нуждаете връзкакъм смисъла. За да направите това, трябва да поставите знак & пред променливата стойност в конструкцията foreach:

Foreach ($myArray като &$value) ( ​​​​$value = 123; )

Например, следният скрипт преминава през всеки елемент (името на директора) в масива $directors и използва функцията PHP explode() и конструкцията на списъка, за да размени първото и фамилното име:

$directors = array("Алфред Хичкок", "Стенли Кубрик", "Мартин Скорсезе", "Фриц Ланг"); // Промяна на формата на името за всеки елемент foreach ($directors като &$director) ( list($firstName, $lastName) = explode(" ", $director); $director = "$lastName, $firstName"; ) unset ($директор); // Отпечатване на крайния резултат foreach ($directors като $director) ( echo $director . "
"; }

Скриптът ще изведе:

Хичкок, Алфред Кубрик, Стенли Скорсезе, Мартин Ланг, Фриц

Обърнете внимание, че скриптът извиква функцията unset(), за да премахне променливата $director след завършване на първия цикъл. Това е добра практика, ако планирате да използвате променливата по-късно в скрипта в различен контекст.

Ако не премахнете препратката, рискувате по-нататъшно изпълнение на код, който случайно препраща към последния елемент в масива ("Lang, Fritz"), ако продължите да използвате променливата $director, което ще доведе до непредвидени последствия!

Резюме

В този урок разгледахме как да използваме конструкцията foreach на PHP за преминаване през елементите на масив. Бяха разгледани следните въпроси:

  • Как да преминете през елементите на масива
  • Как да получите достъп до ключа и стойността на всеки елемент
  • Как да използвате препратка за промяна на стойности, докато преминавате през цикъл

$arr [ 1 ] = "PHP" ;
$arr [ 2 ] = "MySQL" ;
$arr [ 3 ] = "Apache" ;
?>

Елементите на масива могат да се използват в двойни кавички точно като обикновените променливи, така че кодирайте

echo "$arr $arr $arr" ;
?>

$arr [ "first" ] = "PHP" ;
$arr [ "second" ] = "MySQL" ;
$arr [ "third" ] = "Apache" ;
?>

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

ехо "$arr $arr $arr";
?>

Тъй като асоциативните масиви нямат индекси, беше въведен специален тип цикъл за тяхното преминаване - за всеки:

foreach($arr като $key => $value)
{
echo "$key = $value
" ;
}
?>

В резултат на цикъла ще бъдат изведени три реда

първо = PHP
второ = MySQL
трети = Apache

Конструкцията "$key =>", която позволява достъп до ключа на масива на всеки от циклите, не е задължителна и може да бъде пропусната:

foreach($arr като $value)
{
ехо "$ стойност
" ;
}
?>

Редица функции също ви позволяват да връщате масиви, например функцията файл (), който чете файл и връща съдържанието му като масив. Всеки елемент от масива отговаря на един ред.

$arr = файл ("текст.txt");
за ($i = 0; $i< count ($arr ); $i ++)
{
ехо $arr [ $i ]. "
" ;
}
?>

Друга полезна функция е функцията експлодирам (), което ви позволява да разделите низ на няколко фрагмента, всеки от които е поставен в отделен елемент от масива:

$str = "345|[имейл защитен]|http://www.softtime.ru|вход|парола";
$arr = разрушаване ("|", $str);
за ($i = 0; $i< count ($arr ); $i ++)
{
ехо $arr [ $i ]. "
" ;
}
?>

Резултатът от скрипта може да изглежда така:

345
[имейл защитен]
http://www.softtime.ru
Влизам
парола

Има и обратна функция - implode(), която комбинира елементи от масива в низ, използвайки даден разделител:

$arr = "345";
$arr = " [имейл защитен]" ;
$arr = "http://www.softtime.ru";
$arr = "влизане";
$arr = "парола";
$str = implode ("##", $arr);
ехо $str; //345##[имейл защитен]##http://www.softtime.ru##login##парола
?>

Коментирайте

Като цяло има много функции, които изкормват низ; разглеждането на всички тях е извън обхвата на тази статия.

Можете да премахнете един елемент от масив с помощта на функцията unset()и можете да проверите съществуването на масив с помощта на функцията isset(). Нека дефинираме масив от 10 елемента и да унищожим всеки четен елемент.

unset($arr [0], $arr [2], $arr [4], $arr [6], $arr [8]);
// Проверка дали съществуват елементи от масива
за ($i = 0; $i< 10 ; $i ++)
{
if(isset($arr [ $i ])) ехо „Елементът $arr[$i] е дефиниран
"
;
иначе ехо „Елементът $arr[$i] е недефиниран
"
;
}
?>

Резултатът от скрипта от ще бъдат следните редове

Елементът $arr е недефиниран
Елементът $arr е дефиниран
Елементът $arr е недефиниран
Елементът $arr е дефиниран
Елементът $arr е недефиниран
Елементът $arr е дефиниран
Елементът $arr е недефиниран
Елементът $arr е дефиниран
Елементът $arr е недефиниран
Елементът $arr е дефиниран

Използване на функцията unset()можете да унищожите целия масив наведнъж.

$arr = масив (9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
изключване ($ arr);
if(isset($arr )) ехо „Дефиниран масив“;
иначе ехо „Масивът не е дефиниран“;
?>

Преди това масивите се изхвърляха с помощта на цикъл, но PHP предоставя специална функция за изхвърляне на масив print_r(). Функцията е фокусирана върху изход към конзолен поток, така че когато извеждате резултати в прозорец на браузър, е по-добре да го рамкирате с тагове

И
:

$arr = "345";
$arr = " [имейл защитен]";
$arr = "http://www.softtime.ru";
$arr = "вход";
$arr = "парола";
ехо "

";
print_r($arr);
ехо "
";
?>

Резултатът от скрипта изглежда така:

Масив
=> 345
=> [имейл защитен]
=> http://www.softtime.ru
=> влизане
=> парола
)

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

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

Да предположим, че трябва да получите следната таблица:

За да направите това, нека създадем двуизмерен масив:

$arr = array(array('Vasya' , 'locksmith' , 2500 ),
масив ('Миша', 'строител', 3000),
array('Андрей', 'шофьор', 2700));
?>

Сега таблицата може да бъде показана с помощта на следния код:

за ($i = 0; $i< 3 ; $i ++)
{
за ($j = 0; $j< 3 ; $j ++)
{
ехо " | " . $arr[$i][$j];
}
ехо "
" ;
}
?>

Резултат:

| Вася | ключар | 2500
| Миша | строител | 3000
| Андрей | шофьор | 2700

Можете също така да използвате триизмерни, четириизмерни и т.н. масиви.

Операции с масиви (колекция от рецепти)

1) Определяне на броя на елементите в масив броя():

Нека създадем масив $name:

?>

За да определите броя на елементите в масив, можете да направите следното:

ехо „Брой елементи в масива- . брой ($ име);
?>

Резултат:

Брой елементи в масива – 8

2) Комбиниране на масиви

а) Създайте два асоциативни масива $a и $b:

$a = масив (“a” => ”aa” , “b” => “bb” );
$b = масив (“c” => ”cc” , “d” => “dd” );
?>

Да предположим, че трябва да създадете масив $c, който ще съдържа и двата елемента от масива $a и масива $b:

$a = масив("a" => "aa" , "x" => "xx" );
$b = array("c" => "cc" , "d" => "dd" );
$c = $a + $b;
ехо "

"
; 
print_r($c);
ехо "
" ;
?>

Резултат:

Масив
[a] => aa
[x] => xx
[c] => cc
[d] => дд
)

b) Създайте два числови масива $a и $b:

$a = масив (10, 20);
$b = масив (100, 200, 300, 400, 500);
?>

Те вече не могат да се комбинират с помощта на конструкцията $c = $a + $b;. За да ги комбинирате ще трябва да използвате функцията array_merge():

$c = array_merge ($a, $b);
?>

3) Сортиране на масиви

Нека използваме масива $name:

$name = array("Boss" , "Lentin" , "NAV" , "Endless" , "Dragons" , "SiLeNT" , "Doctor" , "Lynx" );
?>

Да предположим, че искате да сортирате масив по азбучен ред, за това можете да използвате следния код:

сортиране ($ име);
ехо "

"
; 
print_r($name);
ехо "
" ;
?>

Резултат:

Масив
=> Шефе
=> Доктор
=> Дракони
=> Безкраен
=> Летин
=> Рис
=>NAV
=> SiLeNT
)

Да предположим, че трябва да изберете най-краткия елемент (който има най-малък брой знаци) от масива $name, в този случай можете да използвате кода:

$name = array("Boss" , "Lentin" , "NAV" , "Endless" , "Dragons" , "SiLeNT" , "Doctor" , "Lynx" );
$min = strlen($name[0]);
$name = $name [0];
за ($i = 1; $i< count ($name ); $i ++)
{
$len = strlen ($name [ $i ]);
ако ($len< $min )
{
$nam = $name [ $i ];
$min = strlen ($nam);
}
}
ехо "Най-къса дължина - ". $nam ;
?>

4) Преместване вътре в масив

Нека създадем масив $num:

?>

Да предположим, че искате да покажете елементите на масива в обратен ред, в този случай можете да използвате кода:

$end = край ($num);
докато ($end)
{
ехо $край. "-" ;
$end = предишен ($num);
}
?>

Резултат:

10 - 9 - 8 - 7 - 6 - 5 - 4 - 3 - 2 – 1

Горният код може да бъде модифициран:

$num = диапазон (1, 10);
print_r(масив_обратен($num));
?>

функция диапазон (1,10)създава масив (1,2,3,4,5,6,7,8,9,10) с произволно подреждане на елементи. функция array_reverse()взема масив и подрежда елементите в обратен ред (10,9,8,7,6,5,4,3,2,1)

Функции следващия(), всеки ()премества показалеца един елемент напред. функция нулиране()връща указател към 1 елемент в масива. Нека използваме масива $num:

$num = масив (1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
?>

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

В тази кратка статия ще разгледаме няколко начина за работа с масиви. Струва си да се отбележи, че това е един от най-важните видове данни и дори е трудно да си представим съвременните езици за програмиране без тях. Какво е масив?
Масивът е структуриран набор от данни.
По тяхната структура може да се определи това прост масивили асоциативен. Невъзможно е да се каже със сигурност кой е по-добър, защото... Трябва да се използва един или друг вид в зависимост от ситуацията.

Как да създадете прост масив в PHP

Ето как изглежда един прост масив:

Искам веднага да ви обърна внимание на данните (да, нарочно го записах така :)). Тип данни низ, или низвинаги пишете в кавички, няма значение кои, както единичните, така и двойните ще работят (основното е, че редът започва и завършва с една и съща кавичка). Числото 29 има вид цяло число, или число - кавички не са необходими за тези типове данни.
Нека да проверим как изглежда масивът $my_array:

"; print_r($my_array); echo ""; /* вземете масив ( => Стол => Облак => 29) */ ?>

Ето как изглежда един прост масив.
0,1,2 — индекси на нашия масив. С помощта на индекси можем да изведем нещо конкретно от даден масив.

Освен това можем да създадем същия масив, ако напишем:

Има и трети начин:

"Стол", 1 => "Облак", 2 => 29);?>

И четвъртото :)

индексите ще се попълват от 0.

PHP какво е асоциативен масив

Вече разбрахме какво е прост масив. Асоциативният масив е различен в това ключовете се използват вместо индекси. Тоест вече няма да използваме 0,1 или 2 за достъп до стойности.Нека напишем нашия прост масив като асоциативен:

Стол => Облак => 29) */ ?>

И да се обадя ще използваме

Вместо числото ( индекс) задаваме смислено име (асоциация) и нашият индекс вече може да бъде извикан ключ за масив(артикул, небе, номер). Най-популярната и може би най-удобната нотация за асоциативен масив:

"Стол", "небе" => "Облак", "номер" => 29); ?>

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

Само няколко думи за този гигант :)

array ("color" => "red", "year" => "2010", "mark" => "M5"), "audi" => array ("color" => "black", "year" = > "2011", "mark" => "TT")); print_r($auto); // изходен масив ехо $auto["bmw"]["mark"]; // M5 ?>

Както разбирате, вместо стойност, която преди беше низ или число, сега има тип данни като масив ( Ще ви направя масив в масив, така че когато извикате масива, ще има друг масив :)).

Един масив не трябва да бъде прост списък от ключове и прости стойности. Всеки елемент от масив може да съдържа като стойност друг масив, който от своя страна също може да съдържа масив и т.н. По този начин можете да създавате двуизмерни и триизмерни масиви.

Двумерни масиви

Двумерен масив- масив, който съхранява други масиви като стойности. Помислете за създаване на двуизмерен масив с помощта на конструктора array():

$ цветя = масив (масив ("рози", 100 , 15), масив ("лалета", 60 , 25), масив ("орхидеи", 180 , 7));

Масивът $flowers съдържа три масива. Както си спомняте, за достъп до елементите на едномерен масив трябва да посочите името и ключа на масива. Същото важи и за двумерните масиви, с едно изключение: всеки елемент има два ключа: първият за избор на ред, вторият за избор на колона.

За да покажете елементите на този масив, можете ръчно да зададете достъп до всеки от тях, но е по-добре да използвате вложени цикли:

Ръчен достъп до елементите
"; echo $flowers." цена ".$цветя." брой ".$цветя."
"; echo $flowers." цена ".$цветя." брой ".$цветя."
"; ехо"

Използване на цикли за отпечатване на елементи

"; ехо"
    "; за ($ред = 0; $ред< 3; $row++) { echo "
  1. Номер на ред $row"; ехо"
      "; за ($col = 0; $col< 3; $col++) { echo "
    • ".$flowers[$row][$col]."
    • "; ) ехо "
    "; ехо"
  2. "; ) ехо "
"; ?>

Вместо номера на колони (индекси, присвоени им по подразбиране), можете да им присвоите необходимите ключове. За тази цел се използват асоциативни масиви. Следният масив ще съхранява същите данни, но с помощта на ключове за наименуване на колоните с информация:

$flowers = array(array("Name" => "roses", "Price" => 100, "Quantity" => 15), array("Name" => "tulips", "Price" => 60, " Количество" => 25,), array("Име" => "орхидеи", "Цена" => 180, "Количество" => 7));

Ключовете създават допълнително удобство за работа с масив в случаите, когато трябва да получите една от стойностите. Данните, от които се нуждаете, могат лесно да бъдат намерени чрез достъп до правилната клетка, като използвате смислени имена на редове и колони. Ние обаче губим способността да обхождаме масива последователно, използвайки for цикъл.

Можем да итерираме над дъщерни масиви само с помощта на for цикъл. Тъй като те от своя страна са асоциативни, за да итерирате елементите им, трябва да използвате foreach цикъл или да итерирате елементите ръчно:

"рози", "Цена" => 100, "Количество" => 15), масив ("Име" => "лалета", "Цена" => 60, "Количество" => 25,), масив ("Име" " => "орхидеи", "Цена" => 180, "Количество" => 7)); ехо "

Ръчен достъп до елементите на асоциативния масив

"; за ($ред = 0; $ред< 3; $row++) { echo $flowers[$row]["Название"]." цена ".$flowers[$row]["Цена"] ." количество ".$flowers[$row]["Количество"]; echo "
"; ) ехо "

Използване на цикъл foreach за достъп до елементи

"; ехо"
    "; за ($ред = 0; $ред< 3; $row++) { echo "
  1. Номер на ред $row"; ехо"
      "; foreach($flowers[$row] as $key => $value) ( ​​​​echo "
    • ".$стойност."
    • "; ) ехо "
    "; ехо"
  2. "; ) ехо "
"; ?>

Не е необходимо да използвате конструктора array() за създаване на двуизмерен масив; можете също да използвате краткия синтаксис - квадратни скоби:

$цветя = [ [ "Име" => "рози", "Цена" => 100, "Количество" => 15 ], [ "Име" => "лалета", "Цена" => 60, "Количество" = > 25, ], [ "Име" => "орхидеи", "Цена" => 180, "Количество" => 7 ] ];

Триизмерни масиви

Не е нужно да се ограничавате само до две измерения: точно както елементите на масива могат да съдържат масиви, тези масиви от своя страна могат да съдържат нови масиви.

Триизмерният масив характеризира ширина, височина и дълбочина. Ако представите двуизмерен масив като таблица, тогава триизмерният масив добавя слоеве към тази таблица. Всеки елемент от такъв масив ще препраща към слой, ред и колона.

Ако леко промените нашия масив с цветя, можете да го преобразувате в триизмерен. В кода по-долу можете да видите това триизмерен масив- масив, съдържащ масив от масиви:

$flowers = [ [ ["рози", 100 , 15], ["лалета", 60 , 25], ["орхидеи", 180 , 7] ], [ ["рози", 100 , 15], ["лалета " ", 60, 25], ["орхидеи", 180, 7], ], [ ["рози", 100, 15], ["лалета", 60, 25], ["орхидеи", 180, 7] ] ];

Тъй като този масив съдържа само числови индекси, можем да използваме вложени цикли, за да го покажем:

"; for ($layer = 0; $layer< 3; $layer++) { echo "

  • Номер на слой $layer"; ехо "
      "; за ($ред = 0; $ред< 3; $row++) { echo "
    • Номер на ред $row"; ехо "
        "; за ($col = 0; $col< 3; $col++) { echo "
      • ".$flowers[$layer][$row][$col]."
      • "; ) ехо "
      "; ехо"
    • "; ) ехо "
    "; ехо"
  • "; ) ехо ""; ?>



    Свързани публикации