|
|
(не показано 44 проміжні версії 3 учасників) |
Рядок 1: |
Рядок 1: |
− | <h3>Ассоциативные массивы в PHP</h3>
| + | Прохання не плагіатити |
− | В PHP индексом массива может быть не только число, но и строка. Причем на такую строку не накладываются никакие ограничения: она может содержать пробелы, длина такой строки может быть любой.
| + | |
− | Ассоциативные массивы особенно удобны в ситуациях, когда элементы массива удобнее связывать со словами, а не с числами.</P>
| + | |
− | <p>Итак, массивы, индексами которых являются строки, называются <ins>ассоциативными массивами</ins>.</p>
| + | |
− | <p><ins>Одномерные ассоциативные массивы</ins>:</p>
| + | |
− | <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>
| + | |
− | <p>Доступ к элементам одномерных ассоциативных массивов осуществляется так же, как и к элементам обыкновенных массивов, и называется <ins>доступом по ключу</ins>: </p>
| + | |
− | <p class="highlight"><code>echo $names["Иванов"];</code></p>
| + | |
− | | + | |
− | <p><ins>Многомерные ассоциативные массивы</ins>:</p>
| + | |
− | <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>
| + | |
− | <p>Многомерные массивы похожи на записи в языке Pascal или структуры в языке C.</p>
| + | |
− | <p>Доступ к элементам многомерного ассоциативного массива осуществляется следующим образом:</p>
| + | |
− | <p><code>echo $A["Ivanov"]["name"]; // Выводит Иванов И.И.<br>
| + | |
− | echo $A["Petrov"]["email"]; // Выводит [email protected]</code></p> | + | |
− | | + | |
− | <p>Как вы уже заметили, для создания многомерного ассоциативного массива мы использовали специальную функцию <strong>array</strong>, мы ее рассмотрим позже, когда будем рассматривать операции над массивами.</p>
| + | |
− | <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">;<br> | + | |
− | </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">;<br> | + | |
− | | + | |
− | </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">;<br> | + | |
− | </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></p>
| + | |