Обхождане на двумерни масиви в 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
Ето как изглежда един прост масив:
$my_array = array("Стул", "Облако", 29);?>
Искам веднага да ви обърна внимание на данните (да, нарочно го записах така :)). Тип данни низ, или низвинаги пишете в кавички, няма значение кои, както единичните, така и двойните ще работят (основното е, че редът започва и завършва с една и съща кавичка). Числото 29 има вид цяло число, или число - кавички не са необходими за тези типове данни.
Нека да проверим как изглежда масивът $my_array:
echo "
"; print_r($my_array); echo ""; /* вземете масив ( => Стол => Облак => 29) */ ?>
Ето как изглежда един прост масив.
0,1,2
— индекси на нашия масив. С помощта на индекси можем да изведем нещо конкретно от даден масив.
Освен това можем да създадем същия масив, ако напишем:
$my_array = "Стул"; $my_array = "Облако"; $my_array = 29; ?>
Има и трети начин:
$my_array = array (0 =>"Стол", 1 => "Облак", 2 => 29);?>
И четвъртото :)
$my_array = "Стул"; $my_array = "Облако"; $my_array = 29; ?>
индексите ще се попълват от 0.
PHP какво е асоциативен масив
Вече разбрахме какво е прост масив. Асоциативният масив е различен в това ключовете се използват вместо индекси. Тоест вече няма да използваме 0,1 или 2 за достъп до стойности.Нека напишем нашия прост масив като асоциативен:
$my_array["item"] = "Стул"; $my_array["sky"] = "Облако"; $my_array["number"] = 29; /* получим если вызовем print_r($my_array); Array ( =>Стол => Облак => 29) */ ?>
И да се обадя ще използваме
Вместо числото ( индекс) задаваме смислено име (асоциация) и нашият индекс вече може да бъде извикан ключ за масив(артикул, небе, номер). Най-популярната и може би най-удобната нотация за асоциативен масив:
$my_array = Array("item" =>"Стол", "небе" => "Облак", "номер" => 29); ?>
Многомерен масив
Само няколко думи за този гигант :)
$auto = array ("bmw" =>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 "
- Номер на ред $row"; ехо"
- "; за ($col = 0; $col< 3; $col++) {
echo "
- ".$flowers[$row][$col]." "; ) ехо "
"; ) ехо "
Вместо номера на колони (индекси, присвоени им по подразбиране), можете да им присвоите необходимите ключове. За тази цел се използват асоциативни масиви. Следният масив ще съхранява същите данни, но с помощта на ключове за наименуване на колоните с информация:
$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 "
- Номер на ред $row"; ехо"
- "; foreach($flowers[$row] as $key => $value) ( echo "
- ".$стойност." "; ) ехо "
"; ) ехо "
Не е необходимо да използвате конструктора 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 "
- "; за ($ред = 0; $ред< 3; $row++)
{
echo "
- Номер на ред $row"; ехо "
- "; за ($col = 0; $col< 3; $col++)
{
echo "
- ".$flowers[$layer][$row][$col]." "; ) ехо "
"; ) ехо "