Відмінності між версіями «Робота з асоціативними масивами в PHP»

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук
(Замінено вміст на «Прохання не плагіатити»)
 
(не показано 34 проміжні версії 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">&lt;?</font><font color="#0000BB">php</font><br>
+
<font color="#FF8000">//&nbsp;Ассоциативный&nbsp;массив</font><br>
+
<font color="#008000">$</font><font color="#0000BB">names</font><font color="#008000">[</font><font color="#FF0000">&quot;Иванов&quot;</font><font color="#008000">]=</font><font color="#FF0000">&quot;Иван&quot;</font><font color="#008000">;</font><br>
+
<font color="#008000">$</font><font color="#0000BB">names</font><font color="#008000">[</font><font color="#FF0000">&quot;Сидоров&quot;</font><font color="#008000">]=</font><font color="#FF0000">&quot;Николай&quot;</font><font color="#008000">;</font><br>
+
<font color="#008000">$</font><font color="#0000BB">name</font><font color="#008000">s[</font><font color="#FF0000">&quot;Петров&quot;</font><font color="#008000">]=</font><font color="#FF0000">&quot;Петр&quot;</font><font color="#008000">;</font><br>
+
<font color="#FF8000">//&nbsp;В&nbsp;данном&nbsp;примере:&nbsp;фамилии&nbsp;-&nbsp;ключи&nbsp;ассоциативного&nbsp;массива</font><br>
+
<font color="#FF8000">//&nbsp;,&nbsp;а&nbsp;имена&nbsp;-&nbsp;элементы&nbsp;массива names</font><br>
+
<font color="#008000">?&gt;</font></font></code>
+
<p>Доступ до елементів одновимірних асоціативних масивів здійснюється так само, як і до елементів звичайних масивів, і має назву<ins>доступом по ключу</ins>: </p>
+
<code>echo $names[&quot;Иванов&quot;];</code>
+
 
+
<p><ins>Многомерные ассоциативные массивы</ins>:</p>
+
<p>Многомерные ассоциативные массивы могут содержать несколько ключей, соответствующих конкретному индексу ассоциативного массива. Рассмотрим пример многомерного ассоциативного массива:</p>
+
<code><font color="#000000"><font color="#008000">&lt;?</font><font color="#0000BB">php</font><br>
+
<font color="#FF8000">//&nbsp;Многомерный&nbsp;массив</font><br>
+
<font color="#008000">$</font><font color="#0000BB">A</font><font color="#008000">[</font><font
+
color="#FF0000">&quot;Ivanov&quot;</font><font color="#008000">]</font><font
+
color="#0000BB">&nbsp;</font><font color="#008000">=</font><font color="#0000BB">&nbsp;array</font><font
+
color="#008000">(</font><font color="#FF0000">&quot;name&quot;</font><font
+
color="#008000">=&gt;</font><font color="#FF0000">&quot;Иванов&nbsp;И.И.&quot;</font><font
+
color="#008000">,</font><font color="#0000BB">&nbsp;</font><font
+
color="#FF0000">&quot;age&quot;</font><font color="#008000">=&gt;</font><font
+
color="#FF0000">&quot;25&quot;</font><font color="#008000">,</font><font
+
color="#0000BB">&nbsp;</font><font color="#FF0000">&quot;email&quot;</font><font
+
color="#008000">=&gt;</font><font color="#FF0000">&quot;</font><u><font
+
color="#0000FF">[email protected]</font></u><font color="#FF0000">&quot;</font><font
+
color="#008000">);</font><br>
+
<font color="#008000">$</font><font color="#0000BB">A</font><font color="#008000">[</font><font
+
color="#FF0000">&quot;Petrov&quot;</font><font color="#008000">]</font><font
+
color="#0000BB">&nbsp;</font><font color="#008000">=</font><font color="#0000BB">&nbsp;array</font><font
+
color="#008000">(</font><font color="#FF0000">&quot;name&quot;</font><font
+
color="#008000">=&gt;</font><font color="#FF0000">&quot;Петров&nbsp;П.П.&quot;</font><font
+
color="#008000">,</font><font color="#0000BB">&nbsp;</font><font
+
color="#FF0000">&quot;age&quot;</font><font color="#008000">=&gt;</font><font
+
color="#FF0000">&quot;34&quot;</font><font color="#008000">,</font><font
+
color="#0000BB">&nbsp;</font><font color="#FF0000">&quot;email&quot;</font><font
+
color="#008000">=&gt;</font><font color="#FF0000">&quot;</font><u><font
+
color="#0000FF">[email protected]</font></u><font color="#FF0000">&quot;</font><font
+
color="#008000">);</font><br>
+
<font color="#008000">$</font><font color="#0000BB">A</font><font color="#008000">[</font><font
+
color="#FF0000">&quot;Sidorov&quot;</font><font color="#008000">]</font><font
+
color="#0000BB">&nbsp;</font><font color="#008000">=</font><font color="#0000BB">&nbsp;array</font><font
+
color="#008000">(</font><font color="#FF0000">&quot;name&quot;</font><font
+
color="#008000">=&gt;</font><font color="#FF0000">&quot;Сидоров&nbsp;С.С.&quot;</font><font
+
color="#008000">,</font><font color="#0000BB">&nbsp;</font><font
+
color="#FF0000">&quot;age&quot;</font><font color="#008000">=&gt;</font><font
+
color="#FF0000">&quot;47&quot;</font><font color="#008000">,</font><font
+
color="#0000BB">&nbsp;</font><font color="#FF0000">&quot;email&quot;</font><font
+
color="#008000">=&gt;</font><font color="#FF0000">&quot;</font><u><font
+
color="#0000FF">[email protected]</font></u><font color="#FF0000">&quot;</font><font
+
color="#008000">);</font><br>
+
<font color="#008000">?&gt;</font></font></code>
+
<p>Багатовимірні масиви схожі на записи в мові Pascal або структури в мові C.</p>
+
<p>Доступ до елементів багатовимірного асоціативного масиву здійснюється таким чином:</p>
+
<code>echo $A[&quot;Ivanov&quot;][&quot;name&quot;]; // Выводит Иванов И.И.<br>echo $A[&quot;Petrov&quot;][&quot;email&quot;]; // Выводит [email protected]</code>
+
 
+
<p>Як ви вже помітили, для створення багатовимірного асоціативного масиву ми використовували спеціальну функцію <strong>array</strong>, ми її розглянемо пізніше, коли будемо розглядати операції над масивами.</p>
+
<p>Асоціативні багатовимірні масиви можна створювати і класичним способом, хоча це не так зручно:</p>
+
 
+
<code><font color="#000000"><font color="#008000">&lt;?</font><font color="#0000BB">php</font><br>
+
<font color="#FF8000">//&nbsp;Многомерный&nbsp;ассоциативный&nbsp;массив</font><br>
+
<font color="#008000">$</font><font color="#0000BB">A</font><font color="#008000">[</font><font color="#FF0000">&quot;Ivanov&quot;</font><font color="#008000">][</font><font color="#FF0000">&quot;name&quot;</font><font color="#008000">]=</font><font color="#FF0000">&quot;Иванов&nbsp;И.И.&quot;</font><font color="#008000">;</font><br>
+
<font color="#008000">$</font><font color="#0000BB">A</font><font color="#008000">[</font><font color="#FF0000">&quot;Ivanov&quot;</font><font color="#008000">][</font><font color="#FF0000">&quot;age&quot;</font><font color="#008000">]=</font><font color="#FF0000">&quot;25&quot;</font><font color="#008000">;</font><br>
+
<font color="#008000">$</font><font color="#0000BB">A</font><font color="#008000">[</font><font color="#FF0000">&quot;Ivanov&quot;</font><font color="#008000">][</font><font color="#FF0000">&quot;email&quot;</font><font color="#008000">]=</font><font color="#FF0000">&quot;</font><u><font color="#0000FF">[email protected]</font></u><font color="#FF0000">&quot;</font><font color="#008000">;
+
</font><br>
+
<font color="#008000">$</font><font color="#0000BB">A</font><font color="#008000">[</font><font color="#FF0000">&quot;Petrov&quot;</font><font color="#008000">][</font><font color="#FF0000">&quot;name&quot;</font><font color="#008000">]=</font><font color="#FF0000">&quot;Петров&nbsp;П.П.&quot;</font><font color="#008000">;</font><br>
+
<font color="#008000">$</font><font color="#0000BB">A</font><font color="#008000">[</font><font color="#FF0000">&quot;Petrov&quot;</font><font color="#008000">][</font><font color="#FF0000">&quot;age&quot;</font><font color="#008000">]=</font><font color="#FF0000">&quot;34&quot;</font><font color="#008000">;</font><br>
+
<font color="#008000">$</font><font color="#0000BB">A</font><font color="#008000">[</font><font color="#FF0000">&quot;Petrov&quot;</font><font color="#008000">][</font><font color="#FF0000">&quot;email&quot;</font><font color="#008000">]=</font><font color="#FF0000">&quot;</font><u><font color="#0000FF">[email protected]</font></u><font color="#FF0000">&quot;</font><font color="#008000">;
+
</font><br>
+
<font color="#008000">$</font><font color="#0000BB">A</font><font color="#008000">[</font><font color="#FF0000">&quot;Sidorov&quot;</font><font color="#008000">][</font><font color="#FF0000">&quot;name&quot;</font><font color="#008000">]=</font><font color="#FF0000">&quot;Сидоров&nbsp;С.С.&quot;</font><font color="#008000">;</font><br>
+
<font color="#008000">$</font><font color="#0000BB">A</font><font color="#008000">[</font><font color="#FF0000">&quot;Sidorov&quot;</font><font color="#008000">][</font><font color="#FF0000">&quot;age&quot;</font><font color="#008000">]=</font><font color="#FF0000">&quot;47&quot;</font><font color="#008000">;</font><br>
+
<font color="#008000">$</font><font color="#0000BB">A</font><font color="#008000">[</font><font color="#FF0000">&quot;Sidorov&quot;</font><font color="#008000">][</font><font color="#FF0000">&quot;email&quot;</font><font color="#008000">]=</font><font color="#FF0000">&quot;</font><u><font color="#0000FF">[email protected]</font></u><font color="#FF0000">&quot;</font><font color="#008000">;
+
</font><br>
+
<font color="#FF8000">//&nbsp;Получаем&nbsp;доступ&nbsp;к&nbsp;ключам&nbsp;многомерного&nbsp;ассоциативного&nbsp;массива</font><br>
+
<font color="#0000BB">echo&nbsp;</font><font color="#008000">$</font><font color="#0000BB">A</font><font color="#008000">[</font><font color="#FF0000">&quot;Ivanov&quot;</font><font color="#008000">][</font><font color="#FF0000">&quot;name&quot;</font><font color="#008000">].</font><font color="#FF0000">&quot;&lt;br&gt;&quot;</font><font color="#008000">;</font><font color="#0000BB">&nbsp;</font><font color="#FF8000">//&nbsp;Выводит&nbsp;Иванов&nbsp;И.И.</font><br>
+
<font color="#0000BB">echo&nbsp;</font><font color="#008000">$</font><font color="#0000BB">A</font><font color="#008000">[</font><font color="#FF0000">&quot;Sidorov&quot;</font><font color="#008000">][</font><font color="#FF0000">&quot;age&quot;</font><font color="#008000">].</font><font color="#FF0000">&quot;&lt;br&gt;&quot;</font><font color="#008000">;</font><font color="#0000BB">&nbsp;</font><font color="#FF8000">//&nbsp;Выводит&nbsp;47</font><br>
+
<font color="#0000BB">echo&nbsp;</font><font color="#008000">$</font><font color="#0000BB">A</font><font color="#008000">[</font><font color="#FF0000">&quot;Petrov&quot;</font><font color="#008000">][</font><font color="#FF0000">&quot;email&quot;</font><font color="#008000">].</font><font color="#FF0000">&quot;&lt;br&gt;&quot;</font><font color="#008000">;</font><font color="#0000BB">&nbsp;</font><font color="#FF8000">//&nbsp;Выводит&nbsp;</font><u><font color="#0000FF">[email protected]</font></u><br>
+
<font color="#008000">?&gt;</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]=&quot;Александр&quot;;<br>$names[1]=&quot;Николай&quot;;<br>$names[2]=&quot;Яков&quot;;</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>Если нам нужны только &quot;Николай&quot; и &quot;Яков&quot;, то мы можем сделать так:</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">&lt;?</font><font color="#0000BB">php</font><br>
+
<font color="#FF8000">//&nbsp;Создает&nbsp;пустой&nbsp;массив:</font><br>
+
<font color="#008000">$</font><font color="#0000BB">arr&nbsp;</font><font color="#008000">=</font><font color="#0000BB">&nbsp;array</font><font color="#008000">();</font><br>
+
<font color="#FF8000">//&nbsp;Создает&nbsp;список&nbsp;с&nbsp;тремя&nbsp;элементами.&nbsp;Индексы&nbsp;начинаются&nbsp;с&nbsp;нуля:</font><br>
+
<font color="#008000">$</font><font color="#0000BB">arr2&nbsp;</font><font color="#008000">=</font><font color="#0000BB">&nbsp;array</font><font color="#008000">(</font><font color="#FF0000">&quot;Иванов&quot;</font><font color="#008000">,</font><font color="#FF0000">&quot;Петров&quot;</font><font color="#008000">,</font><font color="#FF0000">&quot;Сидоров&quot;</font><font color="#008000">);</font><br>
+
<font color="#FF8000">//&nbsp;Создает&nbsp;ассоциативный&nbsp;массив&nbsp;с&nbsp;тремя&nbsp;элементами:</font><br>
+
<font color="#008000">$</font><font color="#0000BB">arr3&nbsp;</font><font color="#008000">=</font><font color="#0000BB">&nbsp;array</font><font color="#008000">(</font><font color="#FF0000">&quot;Иванов&quot;</font><font color="#008000">=&gt;</font><font color="#FF0000">&quot;Иван&quot;</font><font color="#008000">,</font><font color="#0000BB">&nbsp;</font><font color="#FF0000">&quot;Петров&quot;</font><font color="#008000">=&gt;</font><font color="#FF0000">&quot;Петр&quot;</font><font color="#008000">,</font><font color="#0000BB">&nbsp;</font><font color="#FF0000">&quot;Сидоров&quot;</font><font color="#008000">=&gt;</font><font color="#FF0000">&quot;Сидор&quot;</font><font color="#008000">);</font><br>
+
<font color="#FF8000">//&nbsp;Создает&nbsp;многомерный&nbsp;ассоциативный&nbsp;массив:</font><br>
+
<font color="#008000">$</font><font color="#0000BB">arr4&nbsp;</font><font color="#008000">=</font><font color="#0000BB">&nbsp;array</font><font color="#008000">(</font><font color="#FF0000">&quot;name&quot;</font><font color="#008000">=&gt;</font><font color="#FF0000">&quot;Иванов&quot;</font><font color="#008000">,</font><font color="#0000BB">&nbsp;</font><font color="#FF0000">&quot;age&quot;</font><font color="#008000">=&gt;</font><font color="#FF0000">&quot;24&quot;</font><font color="#008000">,</font><font color="#0000BB">&nbsp;</font><font color="#FF0000">&quot;email&quot;</font><font color="#008000">=&gt;</font><font color="#FF0000">&quot;</font><u><font color="#0000FF">[email protected]</font></u><font color="#FF0000">&quot;</font><font color="#008000">);</font><br>
+
<font color="#008000">$</font><font color="#0000BB">arr4&nbsp;</font><font color="#008000">=</font><font color="#0000BB">&nbsp;array</font><font color="#008000">(</font><font color="#FF0000">&quot;name&quot;</font><font color="#008000">=&gt;</font><font color="#FF0000">&quot;Петров&quot;</font><font color="#008000">,</font><font color="#0000BB">&nbsp;</font><font color="#FF0000">&quot;age&quot;</font><font color="#008000">=&gt;</font><font color="#FF0000">&quot;34&quot;</font><font color="#008000">,</font><font color="#0000BB">&nbsp;</font><font color="#FF0000">&quot;email&quot;</font><font color="#008000">=&gt;</font><font color="#FF0000">&quot;</font><u><font color="#0000FF">[email protected]</font></u><font color="#FF0000">&quot;</font><font color="#008000">);</font><br>
+
<font color="#008000">$</font><font color="#0000BB">arr4&nbsp;</font><font color="#008000">=</font><font color="#0000BB">&nbsp;array</font><font color="#008000">(</font><font color="#FF0000">&quot;name&quot;</font><font color="#008000">=&gt;</font><font color="#FF0000">&quot;Сидоров&quot;</font><font color="#008000">,</font><font color="#0000BB">&nbsp;</font><font color="#FF0000">&quot;age&quot;</font><font color="#008000">=&gt;</font><font color="#FF0000">&quot;47&quot;</font><font color="#008000">,</font><font color="#0000BB">&nbsp;</font><font color="#FF0000">&quot;email&quot;</font><font color="#008000">=&gt;</font><font color="#FF0000">&quot;</font><u><font color="#0000FF">[email protected]</font></u><font color="#FF0000">&quot;</font><font color="#008000">);</font><br>
+
<font color="#008000">?&gt;</font></font></code>
+

Поточна версія на 11:14, 17 червня 2018

Прохання не плагіатити