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