|
|
(не показані 30 проміжних версій 3 учасників) |
Рядок 1: |
Рядок 1: |
− | <h3 style="color:#003399">Асоціативні масиви в PHP</h3>
| + | Прохання не плагіатити |
− | <p>В У PHP індексом масиву може бути не тільки число, а й рядок. Причому на такий рядок не накладаються ніякі обмежень: він може містити пробіли, довжина такого рядка може бути будь-яка. </p>
| + | |
− | <p>Асоціативні масиви особливо зручні в ситуаціях, коли елементи масиву зручніше пов'язувати зі словами, а не з числами.</P>
| + | |
− | <p>Отже, масиви, індексами яких є рядки, називаються асоціативними масивами.</ins>.</p>
| + | |
− | <p><ins>Одновимірні асоціативні масиви:</ins>:</p>
| + | |
− | | + | |
− | <p>Одновимірні асоціативні масиви містять тільки один ключ (елемент), відповідний конкретному індексу асоціативного масиву. Наведемо приклад:</p>
| + | |
− | <code><font color="#000000"><font color="#008000"><?</font><font color="#0000BB">php</font><br>
| + | |
− | <font color="#FF8000">// Ассоциативный массив</font><br>
| + | |
− | <font color="#008000">$</font><font color="#0000BB">names</font><font color="#008000">[</font><font color="#FF0000">"Иванов"</font><font color="#008000">]=</font><font color="#FF0000">"Иван"</font><font color="#008000">;</font><br>
| + | |
− | <font color="#008000">$</font><font color="#0000BB">names</font><font color="#008000">[</font><font color="#FF0000">"Сидоров"</font><font color="#008000">]=</font><font color="#FF0000">"Николай"</font><font color="#008000">;</font><br>
| + | |
− | <font color="#008000">$</font><font color="#0000BB">name</font><font color="#008000">s[</font><font color="#FF0000">"Петров"</font><font color="#008000">]=</font><font color="#FF0000">"Петр"</font><font color="#008000">;</font><br>
| + | |
− | <font color="#FF8000">// В данном примере: фамилии - ключи ассоциативного массива</font><br>
| + | |
− | <font color="#FF8000">// , а имена - элементы массива names</font><br>
| + | |
− | <font color="#008000">?></font></font></code>
| + | |
− | <p>Доступ до елементів одновимірних асоціативних масивів здійснюється так само, як і до елементів звичайних масивів, і має назву<ins>доступом по ключу</ins>: </p>
| + | |
− | <code>echo $names["Иванов"];</code>
| + | |
− | | + | |
− | <p><ins>Багатовимірні асоціативні масиви</ins>:</p>
| + | |
− | <p>Багатовимірні асоціативні масиви можуть містити кілька ключів, відповідних конкретному індексу асоціативного масиву. Розглянемо приклад багатовимірного асоціативного масиву:</p>
| + | |
− | <code><font color="#000000"><font color="#008000"><?</font><font color="#0000BB">php</font><br>
| + | |
− | <font color="#FF8000">// Многомерный массив</font><br>
| + | |
− | <font color="#008000">$</font><font color="#0000BB">A</font><font color="#008000">[</font><font
| + | |
− | color="#FF0000">"Ivanov"</font><font color="#008000">]</font><font
| + | |
− | color="#0000BB"> </font><font color="#008000">=</font><font color="#0000BB"> array</font><font
| + | |
− | color="#008000">(</font><font color="#FF0000">"name"</font><font
| + | |
− | color="#008000">=></font><font color="#FF0000">"Иванов И.И."</font><font
| + | |
− | color="#008000">,</font><font color="#0000BB"> </font><font
| + | |
− | color="#FF0000">"age"</font><font color="#008000">=></font><font
| + | |
− | color="#FF0000">"25"</font><font color="#008000">,</font><font
| + | |
− | color="#0000BB"> </font><font color="#FF0000">"email"</font><font
| + | |
− | color="#008000">=></font><font color="#FF0000">"</font><u><font
| + | |
− | | + | |
− | color="#008000">);</font><br>
| + | |
− | <font color="#008000">$</font><font color="#0000BB">A</font><font color="#008000">[</font><font
| + | |
− | color="#FF0000">"Petrov"</font><font color="#008000">]</font><font
| + | |
− | color="#0000BB"> </font><font color="#008000">=</font><font color="#0000BB"> array</font><font
| + | |
− | color="#008000">(</font><font color="#FF0000">"name"</font><font
| + | |
− | color="#008000">=></font><font color="#FF0000">"Петров П.П."</font><font
| + | |
− | color="#008000">,</font><font color="#0000BB"> </font><font
| + | |
− | color="#FF0000">"age"</font><font color="#008000">=></font><font
| + | |
− | color="#FF0000">"34"</font><font color="#008000">,</font><font
| + | |
− | color="#0000BB"> </font><font color="#FF0000">"email"</font><font
| + | |
− | color="#008000">=></font><font color="#FF0000">"</font><u><font
| + | |
− | | + | |
− | color="#008000">);</font><br>
| + | |
− | <font color="#008000">$</font><font color="#0000BB">A</font><font color="#008000">[</font><font
| + | |
− | color="#FF0000">"Sidorov"</font><font color="#008000">]</font><font
| + | |
− | color="#0000BB"> </font><font color="#008000">=</font><font color="#0000BB"> array</font><font
| + | |
− | color="#008000">(</font><font color="#FF0000">"name"</font><font
| + | |
− | color="#008000">=></font><font color="#FF0000">"Сидоров С.С."</font><font
| + | |
− | color="#008000">,</font><font color="#0000BB"> </font><font
| + | |
− | color="#FF0000">"age"</font><font color="#008000">=></font><font
| + | |
− | color="#FF0000">"47"</font><font color="#008000">,</font><font
| + | |
− | color="#0000BB"> </font><font color="#FF0000">"email"</font><font
| + | |
− | color="#008000">=></font><font color="#FF0000">"</font><u><font
| + | |
− | | + | |
− | color="#008000">);</font><br>
| + | |
− | <font color="#008000">?></font></font></code>
| + | |
− | <p>Багатовимірні масиви схожі на записи в мові Pascal або структури в мові C.</p>
| + | |
− | <p>Доступ до елементів багатовимірного асоціативного масиву здійснюється таким чином:</p>
| + | |
− | <code>echo $A["Ivanov"]["name"]; // Выводит Иванов И.И.<br>echo $A["Petrov"]["email"]; // Выводит [email protected]</code> | + | |
− | | + | |
− | <p>Як ви вже помітили, для створення багатовимірного асоціативного масиву ми використовували спеціальну функцію <strong>array</strong>, ми її розглянемо пізніше, коли будемо розглядати операції над масивами.</p>
| + | |
− | <p>Асоціативні багатовимірні масиви можна створювати і класичним способом, хоча це не так зручно:</p>
| + | |
− | | + | |
− | <code><font color="#000000"><font color="#008000"><?</font><font color="#0000BB">php</font><br>
| + | |
− | <font color="#FF8000">// Многомерный ассоциативный массив</font><br>
| + | |
− | <font color="#008000">$</font><font color="#0000BB">A</font><font color="#008000">[</font><font color="#FF0000">"Ivanov"</font><font color="#008000">][</font><font color="#FF0000">"name"</font><font color="#008000">]=</font><font color="#FF0000">"Иванов И.И."</font><font color="#008000">;</font><br>
| + | |
− | <font color="#008000">$</font><font color="#0000BB">A</font><font color="#008000">[</font><font color="#FF0000">"Ivanov"</font><font color="#008000">][</font><font color="#FF0000">"age"</font><font color="#008000">]=</font><font color="#FF0000">"25"</font><font color="#008000">;</font><br>
| + | |
− | <font color="#008000">$</font><font color="#0000BB">A</font><font color="#008000">[</font><font color="#FF0000">"Ivanov"</font><font color="#008000">][</font><font color="#FF0000">"email"</font><font color="#008000">]=</font><font color="#FF0000">"</font><u><font color="#0000FF">[email protected]</font></u><font color="#FF0000">"</font><font color="#008000">; | + | |
− | </font><br>
| + | |
− | <font color="#008000">$</font><font color="#0000BB">A</font><font color="#008000">[</font><font color="#FF0000">"Petrov"</font><font color="#008000">][</font><font color="#FF0000">"name"</font><font color="#008000">]=</font><font color="#FF0000">"Петров П.П."</font><font color="#008000">;</font><br>
| + | |
− | <font color="#008000">$</font><font color="#0000BB">A</font><font color="#008000">[</font><font color="#FF0000">"Petrov"</font><font color="#008000">][</font><font color="#FF0000">"age"</font><font color="#008000">]=</font><font color="#FF0000">"34"</font><font color="#008000">;</font><br>
| + | |
− | <font color="#008000">$</font><font color="#0000BB">A</font><font color="#008000">[</font><font color="#FF0000">"Petrov"</font><font color="#008000">][</font><font color="#FF0000">"email"</font><font color="#008000">]=</font><font color="#FF0000">"</font><u><font color="#0000FF">[email protected]</font></u><font color="#FF0000">"</font><font color="#008000">; | + | |
− | </font><br>
| + | |
− | <font color="#008000">$</font><font color="#0000BB">A</font><font color="#008000">[</font><font color="#FF0000">"Sidorov"</font><font color="#008000">][</font><font color="#FF0000">"name"</font><font color="#008000">]=</font><font color="#FF0000">"Сидоров С.С."</font><font color="#008000">;</font><br>
| + | |
− | <font color="#008000">$</font><font color="#0000BB">A</font><font color="#008000">[</font><font color="#FF0000">"Sidorov"</font><font color="#008000">][</font><font color="#FF0000">"age"</font><font color="#008000">]=</font><font color="#FF0000">"47"</font><font color="#008000">;</font><br>
| + | |
− | <font color="#008000">$</font><font color="#0000BB">A</font><font color="#008000">[</font><font color="#FF0000">"Sidorov"</font><font color="#008000">][</font><font color="#FF0000">"email"</font><font color="#008000">]=</font><font color="#FF0000">"</font><u><font color="#0000FF">[email protected]</font></u><font color="#FF0000">"</font><font color="#008000">; | + | |
− | </font><br>
| + | |
− | <font color="#FF8000">// Получаем доступ к ключам многомерного ассоциативного массива</font><br>
| + | |
− | <font color="#0000BB">echo </font><font color="#008000">$</font><font color="#0000BB">A</font><font color="#008000">[</font><font color="#FF0000">"Ivanov"</font><font color="#008000">][</font><font color="#FF0000">"name"</font><font color="#008000">].</font><font color="#FF0000">"<br>"</font><font color="#008000">;</font><font color="#0000BB"> </font><font color="#FF8000">// Выводит Иванов И.И.</font><br>
| + | |
− | <font color="#0000BB">echo </font><font color="#008000">$</font><font color="#0000BB">A</font><font color="#008000">[</font><font color="#FF0000">"Sidorov"</font><font color="#008000">][</font><font color="#FF0000">"age"</font><font color="#008000">].</font><font color="#FF0000">"<br>"</font><font color="#008000">;</font><font color="#0000BB"> </font><font color="#FF8000">// Выводит 47</font><br>
| + | |
− | <font color="#0000BB">echo </font><font color="#008000">$</font><font color="#0000BB">A</font><font color="#008000">[</font><font color="#FF0000">"Petrov"</font><font color="#008000">][</font><font color="#FF0000">"email"</font><font color="#008000">].</font><font color="#FF0000">"<br>"</font><font color="#008000">;</font><font color="#0000BB"> </font><font color="#FF8000">// Выводит </font><u><font color="#0000FF">[email protected]</font></u><br> | + | |
− | <font color="#008000">?></font></font></code>
| + | |
− | | + | |
− | <h2>Фукціі для роботи з масивами і операції над масивами</h2>
| + | |
− | <h3 style="color:#003399">Функції для роботи з масивами</h3>
| + | |
− | <p>Розглянемо деякі основні функції для роботи з масивами.</p>
| + | |
− | <p style="color:green"><strong>Функція list()</strong></p>
| + | |
− | <p>Припустимо, у нас є масив, що складається з трьох елементів:</p>
| + | |
− | <code>$names[0]="Александр";<br>$names[1]="Николай";<br>$names[2]="Яков";</code>
| + | |
− | | + | |
− | <p>Припустимо, в якийсь момент нам потрібно передати значення всіх трьох елементів масиву, відповідно трьом змінним: <strong>$alex</strong>, <strong>$nick</strong>, <strong>$yakov</strong>. Это можно сделать так:
| + | |
− | </p>
| + | |
− | <code>$alex = $names[0];<br>$nick = $names[1];<br>$yakov = $names[2];</code>
| + | |
− | <p>Якщо масив великий, то такий спосіб привласнення елементів масиву змінним не дуже зручний.</p>
| + | |
− | <p>Є більш раціональний підхід - використання функції.<strong></strong>:</p>
| + | |
− | <code>list ($alex, $nick, $yakov) = $names;</code>
| + | |
− | <p>Якщо нам потрібні тільки "Николай" и "Яков", тоді ми можемо зробити так:</p>
| + | |
− | | + | |
− | <code>list (, $nick, $yakov) = $names;</code>
| + | |
− | <p style="color:green"><strong>Функція array()</strong></p>
| + | |
− | <p>Функція <strong></strong> використовується спеціально для створення масивів. При цьому вона дозволяє створювати порожні масиви. Ось методи використання функції <strong>Array()</strong>:</p>
| + | |
− | <code><font color="#000000"><font color="#008000"><?</font><font color="#0000BB">php</font><br>
| + | |
− | <font color="#FF8000">// Создает пустой массив:</font><br>
| + | |
− | <font color="#008000">$</font><font color="#0000BB">arr </font><font color="#008000">=</font><font color="#0000BB"> array</font><font color="#008000">();</font><br>
| + | |
− | <font color="#FF8000">// Создает список с тремя элементами. Индексы начинаются с нуля:</font><br>
| + | |
− | <font color="#008000">$</font><font color="#0000BB">arr2 </font><font color="#008000">=</font><font color="#0000BB"> array</font><font color="#008000">(</font><font color="#FF0000">"Иванов"</font><font color="#008000">,</font><font color="#FF0000">"Петров"</font><font color="#008000">,</font><font color="#FF0000">"Сидоров"</font><font color="#008000">);</font><br>
| + | |
− | <font color="#FF8000">// Создает ассоциативный массив с тремя элементами:</font><br>
| + | |
− | <font color="#008000">$</font><font color="#0000BB">arr3 </font><font color="#008000">=</font><font color="#0000BB"> array</font><font color="#008000">(</font><font color="#FF0000">"Иванов"</font><font color="#008000">=></font><font color="#FF0000">"Иван"</font><font color="#008000">,</font><font color="#0000BB"> </font><font color="#FF0000">"Петров"</font><font color="#008000">=></font><font color="#FF0000">"Петр"</font><font color="#008000">,</font><font color="#0000BB"> </font><font color="#FF0000">"Сидоров"</font><font color="#008000">=></font><font color="#FF0000">"Сидор"</font><font color="#008000">);</font><br>
| + | |
− | <font color="#FF8000">// Создает многомерный ассоциативный массив:</font><br>
| + | |
− | <font color="#008000">$</font><font color="#0000BB">arr4 </font><font color="#008000">=</font><font color="#0000BB"> array</font><font color="#008000">(</font><font color="#FF0000">"name"</font><font color="#008000">=></font><font color="#FF0000">"Иванов"</font><font color="#008000">,</font><font color="#0000BB"> </font><font color="#FF0000">"age"</font><font color="#008000">=></font><font color="#FF0000">"24"</font><font color="#008000">,</font><font color="#0000BB"> </font><font color="#FF0000">"email"</font><font color="#008000">=></font><font color="#FF0000">"</font><u><font color="#0000FF">[email protected]</font></u><font color="#FF0000">"</font><font color="#008000">);</font><br> | + | |
− | <font color="#008000">$</font><font color="#0000BB">arr4 </font><font color="#008000">=</font><font color="#0000BB"> array</font><font color="#008000">(</font><font color="#FF0000">"name"</font><font color="#008000">=></font><font color="#FF0000">"Петров"</font><font color="#008000">,</font><font color="#0000BB"> </font><font color="#FF0000">"age"</font><font color="#008000">=></font><font color="#FF0000">"34"</font><font color="#008000">,</font><font color="#0000BB"> </font><font color="#FF0000">"email"</font><font color="#008000">=></font><font color="#FF0000">"</font><u><font color="#0000FF">[email protected]</font></u><font color="#FF0000">"</font><font color="#008000">);</font><br> | + | |
− | <font color="#008000">$</font><font color="#0000BB">arr4 </font><font color="#008000">=</font><font color="#0000BB"> array</font><font color="#008000">(</font><font color="#FF0000">"name"</font><font color="#008000">=></font><font color="#FF0000">"Сидоров"</font><font color="#008000">,</font><font color="#0000BB"> </font><font color="#FF0000">"age"</font><font color="#008000">=></font><font color="#FF0000">"47"</font><font color="#008000">,</font><font color="#0000BB"> </font><font color="#FF0000">"email"</font><font color="#008000">=></font><font color="#FF0000">"</font><u><font color="#0000FF">[email protected]</font></u><font color="#FF0000">"</font><font color="#008000">);</font><br> | + | |
− | <font color="#008000">?></font></font></code>
| + | |