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

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук
(Замінено вміст на «Прохання не плагіатити»)
 
(не показані 25 проміжних версій 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>
+
 
+
<h3 style="color: green;">Операции  над массивами</h3>
+
<p style="color: rgb(0, 51, 153);"><strong>Сортировка массивов</strong></p>
+
<p>Начнем с самого простого — сортировки массивов. В <strong>PHP</strong> для этого существует очень много функций. С их помощью можно сортировать ассоциативные массивы и списки в порядке возрастания или убывания, а также в том порядке, в каком вам необходимо — посредством пользовательской функции сортировки.</p>
+
<p style="color: green;"><strong>Сортировка массива по значениям c помощью функций asort() и arsort():</strong></p>
+
<p>Функция <strong>asort()</strong> сортирует массив, указанный в ее параметре, так, чтобы его значения шли в алфавитном (если это строки) или в возрастающем (для чисел) порядке.<br>
+
 
+
  При этом сохраняются связи между ключами и соответствующими им значениями, т. е. некоторые пары ключ=&gt;значение просто "всплывают" наверх, а некоторые — наоборот, "опускаются". Например:</p>
+
<code>$A=array("a"=&gt;"Zero","b"=&gt;"Weapon","c"=&gt;"Alpha","d"=&gt;"Processor");<br>
+
  asort($A);<br>
+
  foreach($A as $k=&gt;$v) echo "$k=&gt;$v ";<br>
+
  // выводит "c=&gt;Alpha d=&gt;Processor b=&gt;Weapon a=&gt;Zero"<br>
+
// как видим, поменялся только порядок пар ключ=&gt;значение</code>
+
<p>Функция <strong>arsort()</strong> выполняет то же самое, за одним исключением: она упорядочивает массив не по возрастанию, а по убыванию.</p>
+
<p style="color: green;"><strong>Сортировка по ключам с помощью функций ksort() и krsort():</strong></p>
+
 
+
<p>Функция <strong>ksort()</strong> практически идентична функции <strong>asort()</strong>, с тем различием, что сортировка осуществляется не по значениями, а по ключам (в порядке возрастания).<br>
+
Например:</p>
+
<code>$A=array("d"=&gt;"Zero", "c"=&gt;"Weapon", "b"=&gt;"Alpha", "a"=&gt;"Processor");<br>  ksort($A);<br>
+
  for(Reset($A); list($k,$v)=each($A);) echo "$k=&gt;$v ";<br>
+
// выводит "a=&gt;Processor b=&gt;Alpha c=&gt;Weapon d=&gt;Zero"</code>
+
<p>Функция для сортировки по ключам в обратном порядке называется <strong>krsort()</strong> и применяется точно в таком же контексте, что и <strong>ksort()</strong>.</p>
+
<p style="color: green;"><strong>Сортировка по ключам при помощи функции uksort():</strong></p>
+
<p>Довольно часто нам приходится сортировать что-то по более сложному критерию, чем просто по алфавиту. Например, пусть в <strong>$Files</strong> хранится список имен файлов и подкаталогов в текущем каталоге. Возможно, мы захотим вывести этот список не только в лексикографическом порядке, но также и чтобы все каталоги предшествовали файлам. В этом случае нам стоит воспользоваться функцией <strong>uksort()</strong>, написав предварительно функцию сравнения с двумя параметрами, как того требует <strong>uksort()</strong>.</p>
+
<code><font color="#000000"><font color="#008000">&lt;?</font><font color="#0000bb">php</font><br>
+
<font color="#ff8000">//&nbsp;Эта&nbsp;функция&nbsp;должна&nbsp;сравнивать&nbsp;значения&nbsp;$f1&nbsp;и&nbsp;$f2&nbsp;и nbsp;возвращать:</font><br>
+
<font color="#ff8000">//&nbsp;-1,&nbsp;если&nbsp;$f1&lt;$f2,</font><br>
+
<font color="#ff8000">//&nbsp;0,&nbsp;если&nbsp;$f1==$f2</font><br>
+
<font color="#ff8000">//&nbsp;1,&nbsp;если&nbsp;$f1&gt;$f2</font><br>
+
<font color="#ff8000">//&nbsp;Под&nbsp;&lt;&nbsp;и&nbsp;&gt;&nbsp;понимается&nbsp;следование&nbsp;этих&nbsp;имен&nbsp;в&nbsp;выводимом&nbsp;списке</font><br>
+
<font color="#008000">function</font><font color="#0000bb">&nbsp;FCmp</font><font color="#008000">($</font><font color="#0000bb">f1</font><font color="#008000">,$</font><font color="#0000bb">f2</font><font color="#008000">)</font><br>
+
<font color="#008000">{</font><font color="#0000bb">&nbsp;</font><font color="#ff8000">//&nbsp;Каталог&nbsp;всегда&nbsp;предшествует&nbsp;файлу</font><br>
+
<font color="#008000">if(</font><font color="#0000bb">is_dir</font><font color="#008000">($</font><font color="#0000bb">f1</font><font color="#008000">)</font><font color="#0000bb">&nbsp;</font><font color="#008000">&amp;&amp;</font><font color="#0000bb">&nbsp;</font><font color="#008000">!</font><font color="#0000bb">is_dir</font><font color="#008000">($</font><font color="#0000bb">f2</font><font color="#008000">))</font><font color="#0000bb">&nbsp;</font><font color="#008000">return</font><font color="#0000bb">&nbsp;</font><font color="#008000">-</font><font color="#0000ff">1</font><font color="#008000">;</font><br>
+
<font color="#ff8000">//&nbsp;Файл&nbsp;всегда&nbsp;идет&nbsp;после&nbsp;каталога</font><br>
+
<font color="#008000">if(!</font><font color="#0000bb">is_dir</font><font color="#008000">($</font><font color="#0000bb">f1</font><font color="#008000">)</font><font color="#0000bb">&nbsp;</font><font color="#008000">&amp;&amp;</font><font color="#0000bb">&nbsp;is_dir</font><font color="#008000">($</font><font color="#0000bb">f2</font><font color="#008000">))</font><font color="#0000bb">&nbsp;</font><font color="#008000">return</font><font color="#0000bb">&nbsp;</font><font color="#0000ff">1</font><font color="#008000">;</font><br>
+
<font color="#ff8000">//&nbsp;Иначе&nbsp;сравниваем&nbsp;лексикографически</font><br>
+
<font color="#008000">if($</font><font color="#0000bb">f1</font><font color="#008000">&lt;$</font><font color="#0000bb">f2</font><font color="#008000">)</font><font color="#0000bb">&nbsp;</font><font color="#008000">return</font><font color="#0000bb">&nbsp;</font><font color="#008000">-</font><font color="#0000ff">1</font><font color="#008000">;</font><font color="#0000bb">&nbsp;</font><font color="#008000">elseif($</font><font color="#0000bb">f1</font><font color="#008000">&gt;$</font><font color="#0000bb">f2</font><font color="#008000">)</font><font color="#0000bb">&nbsp;</font><font color="#008000">return</font><font color="#0000bb">&nbsp;</font><font color="#0000ff">1</font><font color="#008000">;</font><font color="#0000bb">&nbsp;</font><font color="#008000">else</font><font color="#0000bb">&nbsp;</font><font color="#008000">return</font><font color="#0000bb">&nbsp;</font><font color="#0000ff">0</font><font color="#008000">;</font><br>
+
<font color="#008000">}</font><br>
+
<font color="#ff8000">//&nbsp;Пусть&nbsp;$Files&nbsp;содержит&nbsp;массив&nbsp;с&nbsp;ключами&nbsp;—&nbsp;именами&nbsp;файлов</font><br>
+
<font color="#ff8000">//&nbsp;в&nbsp;текущем&nbsp;каталоге.&nbsp;Отсортируем&nbsp;его.</font><br>
+
<font color="#0000bb">uksort</font><font color="#008000">($</font><font color="#0000bb">Files</font><font color="#008000">,  </font><font color="#ff0000">"FCmp"</font><font color="#008000">);</font><font color="#0000bb">&nbsp;</font><font color="#ff8000">//&nbsp;передаем&nbsp;функцию&nbsp;сортировки&nbsp;"по&nbsp;ссылке"</font><br>
+
<font color="#008000">?&gt;</font></font></code>
+
 
+
<p>Конечно, связи между ключами и значениями функцией <strong>uksort()</strong> сохраняются, т. е., опять же, некоторые пары просто "всплывают" наверх, а другие — "оседают".</p>
+
 
+
<p style="color: green;"><strong>Сортировка по значениям при помощи функции uasort()</strong></p>
+
<p>Функция <strong>uasort()</strong> очень похожа на <strong>uksort()</strong>, с той разницей, что сменной (пользовательской) функции сортировки "подсовываются" не ключи, а очередные значения из массива. При этом также сохраняются связи в парах ключ=&gt;значение.</p>
+
<p style="color: green;"><strong>Переворачивание массива с помощью функции array_reverce()</strong></p>
+
<p>Функция <strong>array_reverse()</strong> возвращает массив, элементы которого следуют в обратном порядке относительно массива, переданного в параметре. При этом связи между ключами и значениями, конечно, не теряются. Например, вместо того, чтобы ранжировать массив в обратном порядке при помощи <strong>arsort()</strong>, мы можем отсортировать его в прямом порядке, а затем перевернуть:</p>
+
 
+
<code>$A=array("a"=&gt;"Zero","b"=&gt;"Weapon","c"=&gt;"Alpha","d"=&gt;"Processor");<br>
+
  asort($A);<br>
+
$A=array_reverse($A);</code>
+
<p>Конечно, указанная последовательность работает дольше, чем один-единственный вызов <strong>arsort()</strong>.</p>
+
<p style="color: green;"><strong>Сортировка списка при помощи функций sort() и rsort()</strong></p>
+
 
+
<p>Эти две функции предназначены в первую очередь для сортировки списков. </p>
+
<p>Функция <strong>sort()</strong> сортирует список (разумеется, по значениям) в порядке возрастания, а <strong>rsort()</strong> — в порядке убывания. Пример для функции <strong>sort()</strong>:</p>
+
<code><font color="#000000"><font color="#008000">&lt;?</font><font color="#0000bb">php</font><br>
+
<font color="#008000">$</font><font color="#0000bb">A</font><font color="#008000">=</font><font color="#0000bb">array</font><font color="#008000">(</font><font color="#ff0000">"40"</font><font color="#008000">,</font><font color="#0000bb">&nbsp;</font><font color="#ff0000">"20"</font><font color="#008000">,</font><font color="#0000bb">&nbsp;</font><font color="#ff0000">"10"</font><font color="#008000">,</font><font color="#0000bb">&nbsp;</font><font color="#ff0000">"30"</font><font color="#008000">);</font><br>
+
<font color="#0000bb">sort</font><font color="#008000">($</font><font color="#0000bb">A</font><font color="#008000">);</font><br>
+
<font color="#008000">for($</font><font color="#0000bb">i</font><font color="#008000">=</font><font color="#0000ff">0</font><font color="#008000">;</font><font color="#0000bb">&nbsp;</font><font color="#008000">$</font><font color="#0000bb">i</font><font color="#008000">&lt;</font><font color="#0000bb">count</font><font color="#008000">($</font><font color="#0000bb">A</font><font color="#008000">);</font><font color="#0000bb">&nbsp;</font><font color="#008000">$</font><font color="#0000bb">i</font><font color="#008000">++)</font><font color="#0000bb">&nbsp;echo&nbsp;</font><font color="#ff0000">"$A[$i]"</font><font color="#008000">.</font><font color="#ff0000">"&lt;br&gt;"</font><font color="#008000">;</font><br>
+
<font color="#ff8000">//&nbsp;выводит&nbsp;10&nbsp;20&nbsp;30&nbsp;40</font><br>
+
<font color="#008000">?&gt;</font></font></code>
+
<p style="color: green;"><strong>Перемешивание списка с помощью функции shuffle()</strong></p>
+
<p>Функция <strong>shuffle()</strong> "перемешивает" список, переданный ей первым параметром, так, чтобы его значения распределялись случайным образом. Обратите внимание, что, во-первых, изменяется сам массив, а во вторых, ассоциативные массивы восприимаются как списки. Пример:</p>
+
 
+
<code>$A=array(10,20,30,40,50);<br>
+
  shuffle($A);<br>
+
foreach($A as $v) echo "$v ";</code>
+
<p>Приведенный фрагмент кода выводит числа <strong>10, 20, 30, 40 и 50</strong> в случайном порядке.</p>
+
<p>Выполнив этот фрагмент несколько раз, вы можете обнаружить, что от запуска к запуску очередность следования чисел не изменяется. Это свойство обусловлено тем, что функция <strong>shuffle()</strong> использует стандартный генератор случайных чисел, который перед работой необходимо инициализировать при<br>
+
 
+
помощи вызова <strong>srand()</strong>.</p>
+
<p style="color: rgb(0, 51, 153);"><strong>Операции с ключами и значениями массива</strong></p>
+
<p><strong>array_flip(array $arr)</strong></p>
+
<p>Функция <strong>array_flip()</strong> "пробегает" по массиву и меняет местами его ключи и значения. Исходный массив <strong>$arr</strong> не изменяется, а результирующий массив просто возвращается.<br>
+
  Конечно, если в массиве присутствовали несколько элементов с одинаковыми значениями, учитываться будет только последний из них:</p>
+
 
+
<code>$A=array("a"=&gt;"aaa", "b"=&gt;"aaa", "c"=&gt;"ccc");<br>
+
  $A=array_flip($A);<br>
+
// теперь $A===array("aaa"=&gt;"b", "ccc"=&gt;"c");</code>
+
<p style="color: green;"><strong>array_keys(array $arr [,mixed $SearchVal])</strong></p>
+
<p>Функция <strong>array_keys()</strong> возвращает список, содержащий все ключи массива <strong>$arr</strong>. Если задан необязательный параметр <strong>$SearchVal</strong>, то она вернет только те ключи, которым соответствуют значения <strong>$SearchVal</strong>.</p>
+
 
+
<p>Фактически, эта функция с заданным вторым параметром является обратной по отношению к оператору <strong>[]</strong> — извлечению значения по его ключу.</p>
+
<p style="color: green;"><strong>array_values(array $arr)</strong></p>
+
<p>Функция <strong>array_values()</strong> возвращает список всех значений в ассоциативном массиве <strong>$arr</strong>. Очевидно, такое действие бесполезно для списков, но иногда оправдано для хэшей.</p>
+
<p style="color: green;"><strong>in_array(mixed $val, array $arr)</strong></p>
+
<p>Функция <strong>in_array()</strong> возвращает <strong>true</strong>, если элемент со значением <strong>$val</strong> присутствует в массиве <strong>$arr</strong>.<br>
+
 
+
  Впрочем, если вам часто приходится проделывать эту операцию, подумайте: не лучше ли будет воспользоваться ассоциативным массивом и хранить данные в его ключах, а не в значениях? На этом вы можете сильно выиграть в быстродействии.</p>
+
<p style="color: green;"><strong>array_count_values(list $List)</strong></p>
+
<p>Функция <strong>array_count_values() </strong>подсчитывает, сколько раз каждое значение встречается в списке <strong>$List</strong>, и возвращает ассоциативный массив с ключами — элементами списка и значениями — количеством повторов этих элементов. Иными словами, функция <strong>array_count_values()</strong> подсчитывает частоту появления значений в списке <strong>$List</strong>. Пример:</p>
+
 
+
<code>$List=array(1, "hello", 1, "world", "hello");<br>
+
  array_count_values($array);<br>// возвращает array(1=&gt;2, "hello"=&gt;2, "world"=&gt;1)</code>
+
 
+
<p style="color: rgb(0, 51, 153);"><strong>Слияние массивов</strong></p>
+
<p>Слияние (конкатенация) массивов - это операция создания массива, состоящего из элементов нескольких других массивов. Слияние массивов - это очень опасная операция, поскольку результат слияния подчиняется своей логике, забыв о которой можно потерять данные. Слияние массивов реализуется при помощи оператора&nbsp;"<strong>+</strong>" или с помощью функции <strong><a href="#array_merge">array_merge()</a></strong><a href="#array_merge">.</a> Слияние <ins>списков</ins> может осуществляться только с помощью функции <strong>array_merge()</strong>.</p>
+
 
+
<p>Предположим, мы имеем два массива:</p>
+
<p class="highlight"><code>$A = array("1"=&gt;"первый", "2"=&gt;"Второй");<br>
+
  $B = array("1"=&gt;"первый", "2"=&gt;"Второй");</code></p>
+
<p>Теперь сольем данные два массива в один массив <strong>$C</strong>:</p>
+
<p class="highlight"><code>$C = $A + $B;</code> </p>
+
 
+
<p>Оператор "<strong>+</strong>" для массивов не коммутативен. Это означает, что <strong>$A + $B</strong> не равно <strong>$B + $A</strong>.</p>
+
<p>В результате рассмотренного примера мы получим массив <strong>$C</strong> следующего вида:</p>
+
<p class="highlight"><code>"1"=&gt;"Первый", "2"=&gt;"Второй", "3"=&gt;"Третий", "4"=&gt;"Четвертый"</code></p>
+
 
+
<p>А в результате <strong>$B + $A</strong> мы получим такой массив:</p>
+
<p class="highlight"><code>"3"=&gt;"Третий", "4"=&gt;"Четвертый", "1"=&gt;"Первый", "2"=&gt;"Второй"</code></p>
+
<p>При слиянии списков такой метод не работает. Поясним данный факт на примере:</p>
+
<p>Предположим, у нас есть два массива:</p>
+
<p class="highlight"><code>$A = array(10,11,12);<br>
+
 
+
  $B = array(13,14,15);</code></p>
+
<p>В результате слияния списков <strong>$A</strong> и <strong>$B</strong> ( <strong>$A + $B</strong> ) мы получим: 10,11,12. А это совсем не тот результат, который мы хотели получить... Связано это с тем, что при слиянии списков с одинаковыми индексами в результирующем массиве остается элемент первого массива, причем на том же месте. В таком случае нам необходимо использовать функцию <strong><a href="#array_merge">array_merge()</a></strong></p>
+
<p class="mtx1" style="color: green;"><strong><a name="array_merge"></a>Функция array_merge()</strong></p>
+
 
+
<p>Функция <strong>array_merge()</strong> призвана устранить все недостатки, присущие оператору "<strong>+</strong>" для слияния массивов. А именно, она сливает массивы, перечисленные в ее аргументах, в один большой массив и возвращает результат. Если в массивах встречаются одинаковые ключи, в результат помещается пара ключ=&gt;значение из того массива, который расположен правее в списке аргументов. Однако это не затрагивает числовые ключи: элементы с такими ключами помещаются в конец результирующего массива в любом случае.<br>
+
  Таким образом, с помощью <strong>array_merge()</strong> мы можем избавиться от всех недостатков оператора "<strong>+</strong>" для массивов. Вот пример, сливающий два списка в один:</p>
+
<p class="highlight"><code>$L1=array(100,200,300);<br>
+
 
+
  $L2=array(400,500,600);<br>
+
  $L=array_merge($L1,$L2);<br>
+
  // теперь $L===array(100,200,300,400,500,600);</code></p>
+
<p>Всегда используйте эту функцию, если вам нужно работать именно со списками, а не с обычными ассоциативными массивами.</p>
+
<p style="color: rgb(0, 51, 153);"><strong>Получение части массива</strong></p>
+
<p>Для получения части массива можно использовать функцию <a href="/functions/?array_slice"><strong>array_slice()</strong></a> </p>
+
 
+
<p class="mtx1" style="color: green;"><strong><a name="array_slice"></a>array_slice(array $Arr, int $offset [, int $len])</strong></p>
+
<p>Эта функция возвращает часть ассоциативного массива, начиная с пары <strong>ключ=&gt;значения</strong> со смещением (номером) <strong>$offset</strong> от начала и длиной <strong>$len</strong> (если последний параметр не задан - до конца массива).<br>
+
  Параметры <strong>$offset</strong> и <strong>$len</strong> задаются по точно таким же правилам, как и аналогичные параметры в функции <strong>substr()</strong>. А именно, они могут быть отрицательными (в этом случае отсчет осуществляется от конца массива), и т. д. Вот несколько примеров:</p>
+
 
+
<p class="highlight"><code>$input = array ("a", "b", "c", "d", "e");<br>
+
  $output = array_slice ($input, 2); // "c", "d", "e"<br>
+
  $output = array_slice ($input, 2, -1); // "c", "d"<br>
+
  $output = array_slice ($input, -2, 1); // "d"<br>
+
  $output = array_slice ($input, 0, 3); // "a", "b", "c"</code></p>
+
<p style="color: rgb(0, 51, 153);"><strong>Вставка и удаление элементов массивов</strong></p>
+
<p>Мы уже знаем несколько операторов, которые отвечают за вставку и удаление элементов. Например, оператор <strong>[]</strong> (пустые квадратные скобки) добавляет элемент в конец массива, присваивая ему числовой ключ, а оператор <strong><a href="/functions/?unset" target="_blank">Unset()</a></strong> вместе с извлечением по ключу удаляет нужный элемент. Язык PHP поддерживает и многие другие функции, которые иногда бывает удобно использовать.</p>
+
 
+
<p class="mtx1" style="color: green;"><strong><a name="array_push"></a>array_push(alist &amp;$Arr, mixed $var1 [, mixed $var2, …])</strong></p>
+
<p>Эта функция добавляет к списку <strong>$Arr</strong> элементы <strong>$var1</strong>, <strong>$var2</strong> и т. д. Она присваивает им числовые индексы — точно так же, как это происходит для стандарных <strong>[]</strong>. Если вам нужно добавить всего один элемент, наверное, проще и будет воспользоваться этим оператором:</p>
+
<p class="highlight"><code>array_push($Arr,1000); // вызываем функцию…<br>
+
 
+
  $Arr[]=100; // то же самое, но короче</code></p>
+
<p>Обратите внимание, что функция <strong><a href="/functions/?array_push" target="_blank">array_push()</a></strong> воспринимает массив, как стек, и добавляет элементы всегда в его конец. Она возвращает новое число элементов в массиве.</p>
+
<p class="mtx1" style="color: green;"><strong><a name="array_pop"></a>array_pop(list &amp;$Arr)</strong></p>
+
<p>Функция <strong><a href="/functions/?array_pop" target="_blank">array_pop()</a></strong>, является противоположностью <strong><a href="#array_push">array_push()</a></strong>, снимает элемент с "вершины" стека (то есть берет последний элемент списка) и возвращает его, удалив после этого его из <strong>$Arr</strong>. С помощью этой функции мы можем строить конструкции, напоминающие стек. Если список <strong>$Arr</strong> был пуст, функция возвращает пустую строку.</p>
+
 
+
<p class="mtx1" style="color: green;"><strong>array_unshift(list &amp;$Arr, mixed $var1 [, mixed $var2, …])</strong></p>
+
<p>Функция <strong><a href="/functions/?array_unshift" target="_blank">array_unshift</a></strong> очень похожа на <strong><a href="#array_push">array_push()</a></strong>, но добавляет перечисленные элементы не в конец, а в начало массива. При этом порядок следования <strong>$var1</strong>, <strong>$var2</strong> и т. д. остается тем же, т. е. элементы как бы "вдвигаются" в список слева. Новым элементам списка, как обычно, назначаются числовые индексы, начиная с <strong>0</strong>; при этом все ключи старых элементов массива, которые также были числовыми, изменяются (чаще всего они увеличиваются на число вставляемых значений). Функция возвращает новый размер массива. Вот пример ее применения:</p>
+
 
+
<p class="highlight"><code>$A=array(10,"a"=&gt;20,30);<br>
+
  array_unshift($A,"!","?");<br>
+
  // теперь $A===array(0=&gt;"!", 1=&gt;"?", 2=&gt;10, a=&gt;20, 3=&gt;30)</code></p>
+
<p class="mtx1" style="color: green;"><strong>mixed array_shift(list &amp;$Arr)</strong></p>
+
 
+
<p>Функция <strong><a href="/functions/?mixed%20array_shift" target="_blank">mixed array_shift</a></strong> извлекает первый элемент массива <strong>$Arr</strong> и возвращает его. Она сильно напоминает <strong><a href="#array_pop">array_pop()</a></strong>, но только получает начальный, а не конечный элемент, а также производит довольно сильную "встряску" всего массива: ведь при извлечении первого элемента приходится корректировать все числовые индексы у всех оставшихся элементов…</p>
+
<p class="mtx1" style="color: green;"><strong>array_unique(array $Arr)</strong></p>
+
<p>Функция <a href="/functions/?array_unique" target="_blank"><strong>array_unique()</strong></a> возвращает массив, составленный из всех уникальных значений массива <strong>$Arr</strong> вместе с их ключами. В результирующий массив помещаются первые встретившиеся пары ключ=&gt;значение:</p>
+
 
+
<p class="highlight"><code>$input=array("a" =&gt; "green", "red", "b" =&gt; "green", "blue", "red");<br>
+
  $result=array_unique($input);<br>
+
  // теперь $result===array("a"=&gt;"green", "red", "blue");</code></p>
+
<p class="mtx1" style="color: green;"><strong>array_splice(array &amp;$Arr, int $offset [, int $len] [, int $Repl])</strong></p>
+
<p>Функция <strong><a href="/functions/?array_splice" target="_blank">array_splice</a></strong>, также как и <strong><a href="#array_slice">array_slice()</a></strong>, возвращает подмассив <strong>$Arr</strong>, начиная с индекса <strong>$offset </strong>максимальной длины <strong>$len</strong>, но, вместе с тем, она делает и другое полезное действие. А именно, она заменяет только что указанные элементы на то, что находится в массиве <strong>$Repl</strong> (или просто удаляет, если <strong>$Repl</strong> не указан). Параметры <strong>$offset</strong> и <strong>$len</strong> задаются так же, как и в функции <a href="/functions/?substr" target="_blank"><strong>substr()</strong></a> — а именно, они могут быть и отрицательными, в этом случае отсчет начинается от конца массива. Вот некоторые примеры:</p>
+
 
+
<p class="highlight"><code><font color="#000000"><font color="#008000">&lt;?</font><font color="#0000bb">php</font><br>
+
        <font color="#008000">$</font><font color="#0000bb">input</font><font color="#008000">=</font><font color="#0000bb">array</font><font color="#008000">(</font><font color="#ff0000">"red"</font><font color="#008000">,</font><font color="#0000bb">&nbsp;</font><font color="#ff0000">"green"</font><font color="#008000">,</font><font color="#0000bb">&nbsp;</font><font color="#ff0000">"blue"</font><font color="#008000">,</font><font color="#0000bb">&nbsp;</font><font color="#ff0000">"yellow"</font><font color="#008000">);</font><br>
+
 
+
        <font color="#0000bb">array_splice</font><font color="#008000">($</font><font color="#0000bb">input</font><font color="#008000">,</font><font color="#0000ff">2</font><font color="#008000">);</font><br>
+
        <font color="#ff8000">//&nbsp;Теперь&nbsp;$input===array("red",&nbsp;"green")</font><br>
+
        <font color="#0000bb">array_splice</font><font color="#008000">($</font><font color="#0000bb">input</font><font color="#008000">,</font><font color="#0000ff">1</font><font color="#008000">,-</font><font color="#0000ff">1</font><font color="#008000">);</font><br>
+
 
+
        <font color="#ff8000">//&nbsp;Теперь&nbsp;$input===array("red",&nbsp;"yellow")</font><br>
+
        <font color="#0000bb">array_splice</font><font color="#008000">($</font><font color="#0000bb">input</font><font color="#008000">,</font><font color="#0000bb">&nbsp;</font><font color="#008000">-</font><font color="#0000ff">1</font><font color="#008000">,</font><font color="#0000bb">&nbsp;</font><font color="#0000ff">1</font><font color="#008000">,</font><font color="#0000bb">&nbsp;array</font><font color="#008000">(</font><font color="#ff0000">"black"</font><font color="#008000">,</font><font color="#0000bb">&nbsp;</font><font color="#ff0000">"maroon"</font><font color="#008000">));</font><br>
+
 
+
        <font color="#ff8000">//&nbsp;Теперь&nbsp;$input===array("red",&nbsp;"green",&nbsp;"blue",&nbsp;"black",&nbsp;"maroon")</font><br>
+
        <font color="#0000bb">array_splice</font><font color="#008000">($</font><font color="#0000bb">input</font><font color="#008000">,</font><font color="#0000bb">&nbsp;</font><font color="#0000ff">1</font><font color="#008000">,</font><font color="#0000bb">&nbsp;count</font><font color="#008000">($</font><font color="#0000bb">input</font><font color="#008000">),</font><font color="#0000bb">&nbsp;</font><font color="#ff0000">"orange"</font><font color="#008000">);</font><br>
+
 
+
        <font color="#ff8000">//&nbsp;Теперь&nbsp;$input===array("red",&nbsp;"orange")</font><br>
+
        <font color="#008000">?&gt;</font></font></code></p>
+
<p>Последний пример показывает, что в качестве параметра <strong>$Repl</strong> мы можем указать и обычное, строковое значение, а не массив из одного элемента.</p>
+
<p style="color: rgb(0, 51, 153);"><strong>Переменные и массивы</strong></p>
+
<p class="mtx1" style="color: green;"><strong><a name="compact"></a>compact(mixed $vn1 [, mixed $vn2, …])</strong></p>
+
 
+
<p>Функция <a href="/function/?compact" target="_blank"><strong>compact()</strong></a> упаковывает в массив переменные из текущего контекста (глобального или контекста функции), заданные своими именами в <strong>$vn1</strong>, <strong>$vn2</strong> и т. д. При этом в массиве образуются пары с ключами, равными содержимому <strong>$vnN</strong>, и значениями соответствующих переменных. Вот пример использования этой функции:</p>
+
<p class="highlight"><code>$a="Test string";<br>
+
  $b="Some text";<br>
+
 
+
  $A=compact("a","b");<br>
+
  // теперь $A===array("a"=&gt;"Test string", "b"=&gt;"Some text")</code></p>
+
<p>Почему же тогда параметры функции обозначены как <strong>mixed</strong>? Дело в том, что они могут быть не только строками, но и списками строк. В этом случае функция последовательно перебирает все элементы этого списка, и упаковывает те переменные из текущего контекста, имена которых она встретила. Более того — эти списки могут, в свою очередь, также содержать списки строк, и т. д. Правда, последнее используется сравнительно редко, но все же вот пример:</p>
+
<p class="highlight"><code>$a="Test";<br>
+
  $b="Text";<br>
+
 
+
  $c="CCC";<br>
+
  $d="DDD";<br>
+
  $Lst=array("b",array("c","d"));<br>
+
  $A=compact("a",$Lst);<br>
+
  // теперь $A===array("a"=&gt;"Test", "b"=&gt;"Text", "c"=&gt;"CCC", "d"=&gt;"DDD")</code></p>
+
 
+
<p class="mtx1" style="color: green;"><strong>extract(array $Arr [, int $type] [, string $prefix])</strong></p>
+
<p>Функция <strong><a href="/functions/?extract" target="_blank">extract()</a></strong> производит действия, прямо противоположные <strong><a href="#compact">compact()</a></strong>. А именно, она получает в параметрах массив <strong>$Arr</strong> и превращает каждую его пару ключ=&gt;значение в переменную текущего контекста.</p>
+
<p style="color: rgb(0, 51, 153);"><strong>Создание списка – диапазона чисел</strong></p>
+
<p class="mtx1" style="color: green;"><strong>range(int $low, int $high)</strong></p>
+
 
+
<p>Эта функция очень простая. Она создает список, заполненный целыми числами от <strong>$low</strong> до <strong>$high</strong> включительно.</p>
+
<p style="color: rgb(0, 51, 153);"><strong>Счетчик элементов массива</strong></p>
+
<p>Для подсчета элементов массива предназначена функция <strong><a href="/functions/?count" target="_blank">count()</a></strong>.</p>
+
<p>Пример использования функции <strong>count()</strong>:</p>
+
 
+
<p class="highlight"><code><font color="#000000"><font color="#008000">&lt;?</font><font color="#0000bb">php</font><br>
+
        <font color="#008000">$</font><font color="#0000bb">arr</font><font color="#008000">[]=</font><font color="#0000ff">5</font><font color="#008000">;</font><br>
+
        <font color="#008000">$</font><font color="#0000bb">arr</font><font color="#008000">[]=</font><font color="#0000ff">4</font><font color="#008000">;</font><br>
+
 
+
        <font color="#008000">$</font><font color="#0000bb">arr</font><font color="#008000">[]=</font><font color="#0000ff">8</font><font color="#008000">;</font><br>
+
        <font color="#008000">$</font><font color="#0000bb">arr</font><font color="#008000">[]=</font><font color="#0000ff">3</font><font color="#008000">;</font><br>
+
        <font color="#008000">$</font><font color="#0000bb">arr</font><font color="#008000">[]=</font><font color="#0000ff">8</font><font color="#008000">;</font><br>
+
 
+
        <font color="#0000bb">echo&nbsp;</font><font color="#ff0000">"&lt;h2&gt;Число&nbsp;элементов&nbsp;массива:&nbsp;"</font><font color="#008000">.</font><font color="#0000bb">count</font><font color="#008000">($</font><font color="#0000bb">arr</font><font color="#008000">).</font><font color="#ff0000">"&lt;/h2&gt;"</font><font color="#008000">;</font><br>
+
 
+
        <font color="#ff8000">//&nbsp;Выводит:&nbsp;Число&nbsp;элементов&nbsp;массива:&nbsp;5</font><br>
+
        <font color="#008000">?&gt;</font></font></code></p>
+
<p style="color: rgb(0, 51, 153);"><strong>Удаление массива и его элементов</strong></p>
+
<p>Если вы хотите удалить массив целиком, воспользуйтесь функцией <strong><a href="/functions/?unset" target="_blank">unset()</a></strong>.</p>
+
 
+
<p>Если вы хотите удалить пару ключ/значение, вы также можете использовать функцию <b class="function">unset()</b>. Приведем конкретные примеры:</p>
+
<p class="highlight"><code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);">&lt;?php<br>
+
  $arr&nbsp;</span><span style="color: rgb(0, 119, 0);">=&nbsp;array(</span><span style="color: rgb(0, 0, 187);">5&nbsp;</span><span style="color: rgb(0, 119, 0);">=&gt;&nbsp;</span><span style="color: rgb(0, 0, 187);">1</span><span style="color: rgb(0, 119, 0);">,&nbsp;</span><span style="color: rgb(0, 0, 187);">12&nbsp;</span><span style="color: rgb(0, 119, 0);">=&gt;&nbsp;</span><span style="color: rgb(0, 0, 187);">2</span><span style="color: rgb(0, 119, 0);">);<br>
+
 
+
  <br>
+
  </span><span style="color: rgb(0, 0, 187);">$arr</span><span style="color: rgb(0, 119, 0);">[]&nbsp;=&nbsp;</span><span style="color: rgb(0, 0, 187);">56</span><span style="color: rgb(0, 119, 0);">;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(255, 128, 0);">//&nbsp;В&nbsp;этом&nbsp;месте&nbsp;скрипта&nbsp;это<br>
+
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //&nbsp;эквивалентно&nbsp;$arr[13]&nbsp;=&nbsp;56;<br>
+
 
+
  <br>
+
  </span><span style="color: rgb(0, 0, 187);">$arr</span><span style="color: rgb(0, 119, 0);">[</span><span style="color: rgb(221, 0, 0);">"x"</span><span style="color: rgb(0, 119, 0);">]&nbsp;=&nbsp;</span><span style="color: rgb(0, 0, 187);">42</span><span style="color: rgb(0, 119, 0);">;&nbsp;</span><span style="color: rgb(255, 128, 0);">//&nbsp;Это&nbsp;добавляет&nbsp;к&nbsp;массиву&nbsp;новый<br>
+
 
+
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //&nbsp;элемент&nbsp;с&nbsp;ключом&nbsp;"x"<br>
+
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
  <br>
+
  </span><span style="color: rgb(0, 119, 0);">unset(</span><span style="color: rgb(0, 0, 187);">$arr</span><span style="color: rgb(0, 119, 0);">[</span><span style="color: rgb(0, 0, 187);">5</span><span style="color: rgb(0, 119, 0);">]);&nbsp;</span><span style="color: rgb(255, 128, 0);">//&nbsp;Это&nbsp;удаляет&nbsp;элемент&nbsp;из&nbsp;массива<br>
+
 
+
  <br>
+
  </span><span style="color: rgb(0, 119, 0);">unset(</span><span style="color: rgb(0, 0, 187);">$arr</span><span style="color: rgb(0, 119, 0);">);&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(255, 128, 0);">//&nbsp;Это&nbsp;удаляет&nbsp;массив&nbsp;полностью<br>
+
</span><span style="color: rgb(0, 0, 187);">?&gt;</span> </span></code> </p>
+

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

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