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

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук
(Замінено вміст на «Прохання не плагіатити»)
 
Рядок 1: Рядок 1:
<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">// Создает пустой массив:</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">&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">// Создает ассоциативный массив с тремя элементами:</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">&quot;Иванов&quot;</font><font color="#008000">=&gt;</font><font color="#FF0000">&quot;Иван&quot;</font><font color="#008000">,</font><font color="#0000BB"> </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"> </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">// Создает многомерный ассоциативный массив:</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">&quot;name&quot;</font><font color="#008000">=&gt;</font><font color="#FF0000">&quot;Иванов&quot;</font><font color="#008000">,</font><font color="#0000BB"> </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"> </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 </font><font color="#008000">=</font><font color="#0000BB"> 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"> </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"> </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 </font><font color="#008000">=</font><font color="#0000BB"> 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"> </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"> </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>У PHP для цього існує дуже багато функцій. З їх допомогою можна сортувати асоціативні масиви і списки в порядку зростання або убування, а також у тому порядку, в якому вам необхідно - за допомогою користувацької функції сортування.</p>
+
<p style="color: green;"><strong>Сортування масиву за значеннями за допомогою функцій 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">// Эта функция должна сравнивать значения $f1 и $f2 и nbsp;возвращать:</font><br>
+
<font color="#ff8000">// -1, если $f1&lt;$f2,</font><br>
+
<font color="#ff8000">// 0, если $f1==$f2</font><br>
+
<font color="#ff8000">// 1, если $f1&gt;$f2</font><br>
+
<font color="#ff8000">// Под &lt; и &gt; понимается следование этих имен в выводимом списке</font><br>
+
<font color="#008000">function</font><font color="#0000bb"> 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"> </font><font color="#ff8000">// Каталог всегда предшествует файлу</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"> </font><font color="#008000">&amp;&amp;</font><font color="#0000bb"> </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"> </font><font color="#008000">return</font><font color="#0000bb"> </font><font color="#008000">-</font><font color="#0000ff">1</font><font color="#008000">;</font><br>
+
<font color="#ff8000">// Файл всегда идет после каталога</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"> </font><font color="#008000">&amp;&amp;</font><font color="#0000bb"> is_dir</font><font color="#008000">($</font><font color="#0000bb">f2</font><font color="#008000">))</font><font color="#0000bb"> </font><font color="#008000">return</font><font color="#0000bb"> </font><font color="#0000ff">1</font><font color="#008000">;</font><br>
+
<font color="#ff8000">// Иначе сравниваем лексикографически</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"> </font><font color="#008000">return</font><font color="#0000bb"> </font><font color="#008000">-</font><font color="#0000ff">1</font><font color="#008000">;</font><font color="#0000bb"> </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"> </font><font color="#008000">return</font><font color="#0000bb"> </font><font color="#0000ff">1</font><font color="#008000">;</font><font color="#0000bb"> </font><font color="#008000">else</font><font color="#0000bb"> </font><font color="#008000">return</font><font color="#0000bb"> </font><font color="#0000ff">0</font><font color="#008000">;</font><br>
+
<font color="#008000">}</font><br>
+
<font color="#ff8000">// Пусть $Files содержит массив с ключами — именами файлов</font><br>
+
<font color="#ff8000">// в текущем каталоге. Отсортируем его.</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"> </font><font color="#ff8000">// передаем функцию сортировки "по ссылке"</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"> </font><font color="#ff0000">"20"</font><font color="#008000">,</font><font color="#0000bb"> </font><font color="#ff0000">"10"</font><font color="#008000">,</font><font color="#0000bb"> </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"> </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"> </font><font color="#008000">$</font><font color="#0000bb">i</font><font color="#008000">++)</font><font color="#0000bb"> echo </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">// выводит 10 20 30 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>Наведений фрагмент коду виводить числа 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>Злиття (конкатенація) масивів - це операція створення масиву, що складається з елементів декількох інших масивів. Злиття масивів - це дуже небезпечна операція, оскільки результат злиття підпорядковується своєю логікою, забувши про яку можна втратити дані. Злиття масивів реалізується за допомогою оператора "<strong>+</strong>" або за допомогою функції <strong>array_merge()</strong>. Злиття <ins>списков</ins> може здійснюватися тільки за допомогою функції <strong>array_merge()</strong>.</p>
+
 
+
<p>Припустимо, ми маємо два масиви:</p>
+
<code>$A = array("1"=&gt;"первый", "2"=&gt;"Второй");<br>
+
  $B = array("1"=&gt;"первый", "2"=&gt;"Второй");</code>
+
<p>Тепер зіллємо дані два масиви в один масив <strong>$C</strong>:</p>
+
<code>$C = $A + $B;</code>
+
 
+
<p>Оператор "<strong>+</strong>" для масивів не коммутатівен. Це означає, що <strong>$A + $B</strong> не дорівнює <strong>$B + $A</strong>.</p>
+
<p>У результаті розглянутого прикладі ми отримаємо масив <strong>$C</strong> такого вигляду:</p>
+
<code>"1"=&gt;"Первый", "2"=&gt;"Второй", "3"=&gt;"Третий", "4"=&gt;"Четвертый"</code>
+
 
+
<p>А в результаті <strong>$B + $A</strong> ми отримаємо такий масив:</p>
+
<code>"3"=&gt;"Третий", "4"=&gt;"Четвертый", "1"=&gt;"Первый", "2"=&gt;"Второй"</code>
+
<p>При злитті списків такий метод не працює. Пояснимо даний факт на прикладі:</p>
+
<p>Припустимо, у нас є два масиви: </p>
+
<code>$A = array(10,11,12);<br>
+
$B = array(13,14,15);</code>
+
<p>У результаті злиття списків <strong>$A</strong> і <strong>$B</strong> ( <strong>$A + $B</strong> ) ми отримаємо: 10,11,12. А це зовсім не той результат, який ми хотіли отримати ... Пов'язано це з тим, що при злитті списків з однаковими індексами в результуючому масиві залишається елемент першого масиву, причому на тому ж місці. У такому випадку нам необхідно використовувати функцію <strong>array_merge()</strong></p>
+
<p style="color: green;"><strong>Функція array_merge()</strong></p>
+
 
+
<p>Функція <strong>array_merge()</strong> призначена для усунення всіх недоліків,які властиві оператору "<strong>+</strong>" для злиття масивів. А саме, вона зливає масиви, перераховані в її аргументах, в один великий масив і повертає результат. Якщо в масивах зустрічаються однакові ключі, в результат поміщається пара ключ=&gt;значення з того масиву, який розташований правіше у списку аргументів. Проте це не зачіпає числові ключі: елементи з такими ключами поміщаються в кінець результуючого масиву в будь-якому випадку.<br>
+
Таким чином, за допомогою <strong>array_merge()</strong> ми можемо позбутися усіх недоліків оператора "<strong>+</strong>" для масивів. Ось приклад, що зливає два списки в один: </p>
+
<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 style="color: rgb(0, 51, 153);"><strong>Отримання частини масиву</strong></p>
+
<p>Для отримання частини масиву можна використовувати функцію<a href="/functions/?array_slice"><strong>array_slice()</strong></a> </p>
+
 
+
<p style="color: green;"><strong>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>
+
 
+
<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 style="color: rgb(0, 51, 153);"><strong>Вставка та видалення елементів масиву</strong></p>
+
<p>Ми вже знаємо кілька операторів, які відповідають за вставку і видалення елементів. Наприклад, оператор <strong>[]</strong> (порожні квадратні дужки) додає елемент в кінець масиву, привласнюючи йому числовий ключ, а оператор <strong>Unset()</strong> разом з витягом по ключу видаляє потрібний елемент. Мова PHP підтримує і багато інших функцій, які іноді буває зручно використовувати.</p>
+
 
+
<p style="color: green;"><strong>array_push(alist &amp;$Arr, mixed $var1 [, mixed $var2, …])</strong></p>
+
<p>Ця функція додає до списку <strong>$Arr</strong> елементи <strong>$var1</strong>, <strong>$var2</strong> і т. д. Вона присвоює їм числові індекси - точно так само, як це відбувається для стандартних <strong>[]</strong>. Якщо вам потрібно додати всього один елемент, напевно, простіше буде скористатися цим оператором:</p>
+
<code>array_push($Arr,1000); // вызываем функцию…<br>
+
$Arr[]=100; // то же самое, но короче</code>
+
<p>Зверніть увагу, що функція <strong>array_push()</strong> сприймає масив, як стек, і додає елементи завжди в його кінець. Вона повертає нове число елементів у масиві.</p>
+
<p style="color: green;"><strong>array_pop(list &amp;$Arr)</strong></p>
+
<p>Функція <strong>array_pop()</strong>, є протилежністю <strong>array_push()</strong>, знімає елемент з "вершини" стека (тобто бере останній елемент списку) і повертає його, видаливши після цього його з <strong>$Arr</strong>. За допомогою цієї функції ми можемо будувати конструкції, що нагадують стек. Якщо список <strong>$Arr</strong> був порожній, функція повертає пустий рядок.</p>
+
 
+
<p style="color: green;"><strong>array_unshift(list &amp;$Arr, mixed $var1 [, mixed $var2, …])</strong></p>
+
<p>Функція <strong>array_unshift</strong> дуже схожа на <strong>array_push()</strong>,  але додає перераховані елементи не в кінець, а в початок масиву. При цьому порядок проходження <strong>$var1</strong>, <strong>$var2</strong> і т. д. алишається тим же, тобто елементи як би "всувають" в список ліворуч. Новим елементам списку, як зазвичай, призначаються числові індекси, починаючи з <strong>0</strong>; при цьому всі ключі старих елементів масиву, які також були числовими, змінюються. Функція повертає новий розмір масиву. Ось приклад її застосування:</p>
+
 
+
<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 style="color: green;"><strong>mixed array_shift(list &amp;$Arr)</strong></p>
+
 
+
<p>Функція <strong>mixed array_shift</strong> витягує перший елемент масиву <strong>$Arr</strong> і повертає його. Вона сильно нагадує <strong>array_pop()</strong>, але тільки отримує початковий, а не кінцевий елемент, а також виробляє досить сильну "струс" всього масиву: адже при отриманні першого елемента доводиться коректувати всі числові індекси у всіх залишилися елементів ...</p>
+
<p style="color: green;"><strong>array_unique(array $Arr)</strong></p>
+
<p>Функція <strong>array_unique()</strong> повертає масив, складений з усіх унікальних значень масиву <strong>$Arr</strong> разом з їх ключами. У результуючий масив поміщаються перші зустрілися пари ключ =&gt;значення:</p>
+
 
+
<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 style="color: green;"><strong>array_splice(array &amp;$Arr, int $offset [, int $len] [, int $Repl])</strong></p>
+
<p>Функція <strong>array_splice</strong>,також як і <strong>array_slice()</strong>, повертає подмассів <strong>$Arr</strong>, починаючи з індексу <strong>$offset </strong> максимальної довжини <strong>$len</strong>, але, разом з тим, вона робить і інше корисну дію. А саме, вона заміняє тільки що зазначені елементи на те, що знаходиться в масиві <strong>$Repl</strong>  (або просто видаляє, якщо <strong>$Repl</strong> не зазначений). Параметри <strong>$offset</strong> і <strong>$len</strong> задаються так само, як і у функції <strong>substr()</strong> — а саме, вони можуть бути і негативними, в цьому випадку відлік починається від кінця масиву. Ось деякі приклади:</p>
+
 
+
<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"> </font><font color="#ff0000">"green"</font><font color="#008000">,</font><font color="#0000bb"> </font><font color="#ff0000">"blue"</font><font color="#008000">,</font><font color="#0000bb"> </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">// Теперь $input===array("red", "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">// Теперь $input===array("red", "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"> </font><font color="#008000">-</font><font color="#0000ff">1</font><font color="#008000">,</font><font color="#0000bb"> </font><font color="#0000ff">1</font><font color="#008000">,</font><font color="#0000bb"> array</font><font color="#008000">(</font><font color="#ff0000">"black"</font><font color="#008000">,</font><font color="#0000bb"> </font><font color="#ff0000">"maroon"</font><font color="#008000">));</font><br>
+
<font color="#ff8000">// Теперь $input===array("red", "green", "blue", "black", "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"> </font><font color="#0000ff">1</font><font color="#008000">,</font><font color="#0000bb"> count</font><font color="#008000">($</font><font color="#0000bb">input</font><font color="#008000">),</font><font color="#0000bb"> </font><font color="#ff0000">"orange"</font><font color="#008000">);</font><br>
+
<font color="#ff8000">// Теперь $input===array("red", "orange")</font><br>
+
<font color="#008000">?&gt;</font></font></code>
+
<p>Останній приклад показує, що як параметр <strong>$Repl</strong> ми можемо вказати і звичайне, значення рядка, а не масив з одного елемента.</p>
+
 
+
<p style="color: rgb(0, 51, 153);"><strong>Змінні та масиви</strong></p>
+
<p style="color: green;"><strong>compact(mixed $vn1 [, mixed $vn2, …])</strong></p>
+
 
+
<p>Функція <strong>compact()</strong> упаковує в масив змінні з поточного контексту (глобального чи контексту функції), задані своїми іменами в <strong>$vn1</strong>, <strong>$vn2</strong> і т. д. При цьому в масиві утворюються пари з ключами, рівними вмісту <strong>$vnN</strong>,  і значеннями відповідних змінних. Ось приклад використання цієї функції: </p>
+
<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>Чому ж тоді параметри функції позначені як <strong>mixed</strong>? Справа в тому, що вони можуть бути не тільки рядками, але і списками рядків. У цьому випадку функція послідовно перебирає всі елементи цього списку, і упаковує ті змінні з поточного контексту, імена яких вона зустріла. Більше того - ці списки можуть, у свою чергу, також містити списки рядків, і т. д. Правда, останнє використовується порівняно рідко, але все-таки от приклад:</p>
+
<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 style="color: green;"><strong>extract(array $Arr [, int $type] [, string $prefix])</strong></p>
+
<p>Функція <strong>extract()</strong> виробляє дії, прямо протилежні <strong>compact()</strong>. А саме, вона отримує в параметрах масив <strong>$Arr</strong> і перетворює кожну його пару ключ=&gt;значення в змінну поточного контексту.</p>
+
<p style="color: rgb(0, 51, 153);"><strong>Створення списку - діапазону чисел</strong></p>
+
<p 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>count()</strong>.</p>
+
<p>Приклад використання функції <strong>count()</strong>:</p>
+
 
+
<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 </font><font color="#ff0000">"&lt;h2&gt;Число элементов массива: "</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">// Выводит: Число элементов массива: 5</font><br>
+
<font color="#008000">?&gt;</font></font></code>
+
<p style="color: rgb(0, 51, 153);"><strong>Видалення масиву і його елементів </strong></p>
+
<p>Якщо ви хочете видалити масив цілком, скористайтеся функцією <strong>unset()</strong>.</p>
+
 
+
<p>Якщо ви хочете видалити пару ключ / значення, ви також можете використовувати функцію <b>unset()</b>. Наведемо конкретні приклади:</p>
+
<code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);">&lt;?php<br>
+
$arr </span><span style="color: rgb(0, 119, 0);">= array(</span><span style="color: rgb(0, 0, 187);">5 </span><span style="color: rgb(0, 119, 0);">=&gt; </span><span style="color: rgb(0, 0, 187);">1</span><span style="color: rgb(0, 119, 0);">, </span><span style="color: rgb(0, 0, 187);">12 </span><span style="color: rgb(0, 119, 0);">=&gt; </span><span style="color: rgb(0, 0, 187);">2</span><span style="color: rgb(0, 119, 0);">);<br>
+
</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);">56</span><span style="color: rgb(0, 119, 0);">;    </span><span style="color: rgb(255, 128, 0);">// В этом месте скрипта это<br>                  // эквивалентно $arr[13] = 56;<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);">] = </span><span style="color: rgb(0, 0, 187);">42</span><span style="color: rgb(0, 119, 0);">; </span><span style="color: rgb(255, 128, 0);">// Это добавляет к массиву новый<br>
+
                // элемент с ключом "x"<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);">]); </span><span style="color: rgb(255, 128, 0);">// Это удаляет элемент из массива<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);">);    </span><span style="color: rgb(255, 128, 0);">// Это удаляет массив полностью<br>
+
</span><span style="color: rgb(0, 0, 187);">?&gt;</span> </span></code>
+
 
+
<h2>Деякі особливості роботи з масивами</h2>
+
<h3 style="color: rgb(0, 51, 153);">Перетворення в масив (тип array)</h3>
+
<p>Для будь-якого з типів: <b>integer</b>, <b >float</b></a>, <b>string</b>, <b>boolean</b> і <b>resource</b>,  якщо ви перетворите значення в масив, ви отримаєте масив з одним елементом (з індексом 0), що є скалярним значенням, з якого ви почали. </p>
+
 
+
<p>Якщо ви перетворите в масив об'єкт (<b>object</b>), ви отримаєте в якості елементів масиву властивості (змінні-члени) цього об'єкту. Ключами будуть імена змінних-членів. </p>
+
<p>Якщо ви перетворите в масив значення <b>NULL</b>, ви отримаєте порожній масив.</p>
+
<h3 style="color: rgb(0, 51, 153);">Порівняння масивів </h3>
+
<p>Масиви можна порівнювати за допомогою функції <b>array_diff()</b> та <strong> операторів масивів:</strong></p>
+
<p><ins>Оператори, що працюють з масивами:</ins>:</p>
+
 
+
  <table bgcolor="#000066" border="1" cellpadding="3" cellspacing="1">
+
        <tr>
+
          <th bgcolor="#ffffff">Приклад</th>
+
 
+
          <th bgcolor="#ffffff">Назва</th>
+
          <th bgcolor="#ffffff">Результат</th>
+
        </tr>     
+
        <tr>
+
          <td bgcolor="#ffffff">$a + $b</td>
+
 
+
          <td bgcolor="#ffffff">Об'єднання</td>
+
          <td bgcolor="#ffffff">Об'єднання масиву $a і масиву $b.</td>
+
        </tr>
+
        <tr>
+
          <td bgcolor="#ffffff">$a == $b</td>
+
          <td bgcolor="#ffffff">Дорівнює</td>
+
          <td bgcolor="#ffffff"><b>TRUE</b>в випадку, якщо $a і $b містять одні і тіж елементи.</td>
+
 
+
        </tr>
+
        <tr>
+
          <td bgcolor="#ffffff">$a === $b</td>
+
          <td bgcolor="#ffffff">Тотожньо рівно</td>
+
          <td bgcolor="#ffffff"><b>TRUE</b> в випадку, якщо $a і $b містять одні і тіж елементи в тому самому порядку.</td>
+
        </tr>
+
 
+
        <tr>
+
          <td bgcolor="#ffffff">$a != $b</td>
+
          <td bgcolor="#ffffff">Не дорівнює</td>
+
          <td bgcolor="#ffffff"><b>TRUE</b> якщо масив $a не дорівнює масиву $b.</td>
+
        </tr>
+
        <tr>
+
 
+
          <td bgcolor="#ffffff">$a &lt;&gt; $b</td>
+
          <td bgcolor="#ffffff">Не рівно</td>
+
          <td bgcolor="#ffffff"><b>TRUE</b> якщо масив $a не дорівнює масиву $b.</td>
+
        </tr>
+
        <tr>
+
 
+
          <td bgcolor="#ffffff">$a !== $b</td>
+
          <td bgcolor="#ffffff">Тотожньо не рівно</td>
+
          <td bgcolor="#ffffff"><b>TRUE</b> якщо масив $a тотожньо не дорівнює масиву $b.</td>
+
        </tr>
+
</table>
+
<p><ins>Приклад порівняння масивів: </ins></p>
+
 
+
<code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);">&lt;?php<br>
+
  $a </span><span style="color: rgb(0, 119, 0);">= array(</span><span style="color: rgb(221, 0, 0);">"apple"</span><span style="color: rgb(0, 119, 0);">, </span><span style="color: rgb(221, 0, 0);">"banana"</span><span style="color: rgb(0, 119, 0);">);<br>
+
</span><span style="color: rgb(0, 0, 187);">$b </span><span style="color: rgb(0, 119, 0);">= array(</span><span style="color: rgb(0, 0, 187);">1 </span><span style="color: rgb(0, 119, 0);">=&gt; </span><span style="color: rgb(221, 0, 0);">"banana"</span><span style="color: rgb(0, 119, 0);">, </span><span style="color: rgb(221, 0, 0);">"0" </span><span style="color: rgb(0, 119, 0);">=&gt; </span><span style="color: rgb(221, 0, 0);">"apple"</span><span style="color: rgb(0, 119, 0);">);<br>
+
</span><span style="color: rgb(0, 0, 187);">var_dump</span><span style="color: rgb(0, 119, 0);">(</span><span style="color: rgb(0, 0, 187);">$a </span><span style="color: rgb(0, 119, 0);">== </span><span style="color: rgb(0, 0, 187);">$b</span><span style="color: rgb(0, 119, 0);">); </span><span style="color: rgb(255, 128, 0);">// bool(true)<br>
+
</span><span style="color: rgb(0, 0, 187);">var_dump</span><span style="color: rgb(0, 119, 0);">(</span><span style="color: rgb(0, 0, 187);">$a </span><span style="color: rgb(0, 119, 0);">=== </span><span style="color: rgb(0, 0, 187);">$b</span><span style="color: rgb(0, 119, 0);">); </span><span style="color: rgb(255, 128, 0);">// bool(false)<br>
+
</span><span style="color: rgb(0, 0, 187);">?&gt;</span> </span></code>
+
<h3 style="color: rgb(0, 51, 153);">Деякі корисні практичні приклади по роботі з масивами</h3>
+
<code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);">&lt;?php<br>
+
</span><span style="color: rgb(255, 128, 0);">// это<br>
+
</span><span style="color: rgb(0, 0, 187);">$a </span><span style="color: rgb(0, 119, 0);">= array( </span><span style="color: rgb(221, 0, 0);">'color' </span><span style="color: rgb(0, 119, 0);">=&gt; </span><span style="color: rgb(221, 0, 0);">'red'</span><span style="color: rgb(0, 119, 0);">,<br>         
+
</span><span style="color: rgb(221, 0, 0);">'taste' </span><span style="color: rgb(0, 119, 0);">=&gt; </span><span style="color: rgb(221, 0, 0);">'sweet'</span><span style="color: rgb(0, 119, 0);">,<br>           
+
</span><span style="color: rgb(221, 0, 0);">'shape' </span><span style="color: rgb(0, 119, 0);">=&gt; </span><span style="color: rgb(221, 0, 0);">'round'</span><span style="color: rgb(0, 119, 0);">,<br>           
+
</span><span style="color: rgb(221, 0, 0);">'name'  </span><span style="color: rgb(0, 119, 0);">=&gt; </span><span style="color: rgb(221, 0, 0);">'apple'</span><span style="color: rgb(0, 119, 0);">,<br>                     
+
</span><span style="color: rgb(0, 0, 187);">4        </span><span style="color: rgb(255, 128, 0);">// ключом будет 0<br>         
+
</span><span style="color: rgb(0, 119, 0);">);<br>
+
</span><span style="color: rgb(255, 128, 0);">// полностью соответствует<br>
+
</span><span style="color: rgb(0, 0, 187);">$a</span><span style="color: rgb(0, 119, 0);">[</span><span style="color: rgb(221, 0, 0);">'color'</span><span style="color: rgb(0, 119, 0);">] = </span><span style="color: rgb(221, 0, 0);">'red'</span><span style="color: rgb(0, 119, 0);">;<br>
+
</span><span style="color: rgb(0, 0, 187);">$a</span><span style="color: rgb(0, 119, 0);">[</span><span style="color: rgb(221, 0, 0);">'taste'</span><span style="color: rgb(0, 119, 0);">] = </span><span style="color: rgb(221, 0, 0);">'sweet'</span><span style="color: rgb(0, 119, 0);">;<br>
+
</span><span style="color: rgb(0, 0, 187);">$a</span><span style="color: rgb(0, 119, 0);">[</span><span style="color: rgb(221, 0, 0);">'shape'</span><span style="color: rgb(0, 119, 0);">] = </span><span style="color: rgb(221, 0, 0);">'round'</span><span style="color: rgb(0, 119, 0);">;<br>
+
</span><span style="color: rgb(0, 0, 187);">$a</span><span style="color: rgb(0, 119, 0);">[</span><span style="color: rgb(221, 0, 0);">'name'</span><span style="color: rgb(0, 119, 0);">]  = </span><span style="color: rgb(221, 0, 0);">'apple'</span><span style="color: rgb(0, 119, 0);">;<br>
+
</span><span style="color: rgb(0, 0, 187);">$a</span><span style="color: rgb(0, 119, 0);">[]        = </span><span style="color: rgb(0, 0, 187);">4</span><span style="color: rgb(0, 119, 0);">;        </span><span style="color: rgb(255, 128, 0);">// ключом будет 0<br>
+
</span><span style="color: rgb(0, 0, 187);">$b</span><span style="color: rgb(0, 119, 0);">[] = </span><span style="color: rgb(221, 0, 0);">'a'</span><span style="color: rgb(0, 119, 0);">;<br>
+
</span><span style="color: rgb(0, 0, 187);">$b</span><span style="color: rgb(0, 119, 0);">[] = </span><span style="color: rgb(221, 0, 0);">'b'</span><span style="color: rgb(0, 119, 0);">;<br>
+
</span><span style="color: rgb(0, 0, 187);">$b</span><span style="color: rgb(0, 119, 0);">[] = </span><span style="color: rgb(221, 0, 0);">'c'</span><span style="color: rgb(0, 119, 0);">;<br>
+
</span><span style="color: rgb(255, 128, 0);">// создаст массив array(0 =&gt; 'a' , 1 =&gt; 'b' , 2 =&gt; 'c'),// или просто array('a', 'b', 'c')<br>
+
</span><span style="color: rgb(0, 0, 187);">?&gt;</span></span></code>
+
 
+
<p><ins>Ще один практичний приклад: </ins></p>
+
<code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);">&lt;?php<br>
+
</span><span style="color: rgb(255, 128, 0);">// Массив как карта (свойств)<br>
+
</span><span style="color: rgb(0, 0, 187);">$map </span><span style="color: rgb(0, 119, 0);">= array( </span><span style="color: rgb(221, 0, 0);">'version'    </span><span style="color: rgb(0, 119, 0);">=&gt; </span><span style="color: rgb(0, 0, 187);">4</span><span style="color: rgb(0, 119, 0);">,<br>             
+
</span><span style="color: rgb(221, 0, 0);">'OS'        </span><span style="color: rgb(0, 119, 0);">=&gt; </span><span style="color: rgb(221, 0, 0);">'Linux'</span><span style="color: rgb(0, 119, 0);">,<br>             
+
</span><span style="color: rgb(221, 0, 0);">'lang'      </span><span style="color: rgb(0, 119, 0);">=&gt; </span><span style="color: rgb(221, 0, 0);">'english'</span><span style="color: rgb(0, 119, 0);">,<br>             
+
</span><span style="color: rgb(221, 0, 0);">'short_tags' </span><span style="color: rgb(0, 119, 0);">=&gt; </span><span style="color: rgb(0, 0, 187);">true<br>           
+
</span><span style="color: rgb(0, 119, 0);">);<br>           
+
</span><span style="color: rgb(255, 128, 0);">// исключительно числовые ключи<br>
+
</span><span style="color: rgb(0, 0, 187);">$array </span><span style="color: rgb(0, 119, 0);">= array( </span><span style="color: rgb(0, 0, 187);">7</span><span style="color: rgb(0, 119, 0);">,<br>               
+
</span><span style="color: rgb(0, 0, 187);">8</span><span style="color: rgb(0, 119, 0);">,<br>               
+
</span><span style="color: rgb(0, 0, 187);">0</span><span style="color: rgb(0, 119, 0);">,<br>               
+
</span><span style="color: rgb(0, 0, 187);">156</span><span style="color: rgb(0, 119, 0);">,<br>
+
                -</span><span style="color: rgb(0, 0, 187);">10<br>           
+
</span><span style="color: rgb(0, 119, 0);">);<br>
+
</span><span style="color: rgb(255, 128, 0);">// это то же самое, что и array(0 =&gt; 7, 1 =&gt; 8, ...)<br>
+
</span><span style="color: rgb(0, 0, 187);">$switching </span><span style="color: rgb(0, 119, 0);">= array(        </span><span style="color: rgb(0, 0, 187);">10</span><span style="color: rgb(0, 119, 0);">, </span><span style="color: rgb(255, 128, 0);">// ключ = 0<br>                   
+
</span><span style="color: rgb(0, 0, 187);">5    </span><span style="color: rgb(0, 119, 0);">=&gt;  </span><span style="color: rgb(0, 0, 187);">6</span><span style="color: rgb(0, 119, 0);">,<br>                   
+
</span><span style="color: rgb(0, 0, 187);">3    </span><span style="color: rgb(0, 119, 0);">=&gt;  </span><span style="color: rgb(0, 0, 187);">7</span><span style="color: rgb(0, 119, 0);">, <br>                   
+
</span><span style="color: rgb(221, 0, 0);">'a'  </span><span style="color: rgb(0, 119, 0);">=&gt;  </span><span style="color: rgb(0, 0, 187);">4</span><span style="color: rgb(0, 119, 0);">,<br>                           
+
</span><span style="color: rgb(0, 0, 187);">11</span><span style="color: rgb(0, 119, 0);">, </span><span style="color: rgb(255, 128, 0);">// ключ = 6 (максимальным числовым индексом был 5)<br>                   
+
</span><span style="color: rgb(221, 0, 0);">'8'  </span><span style="color: rgb(0, 119, 0);">=&gt;  </span><span style="color: rgb(0, 0, 187);">2</span><span style="color: rgb(0, 119, 0);">, </span><span style="color: rgb(255, 128, 0);">// ключ = 8 (число!)<br>                   
+
</span><span style="color: rgb(221, 0, 0);">'02' </span><span style="color: rgb(0, 119, 0);">=&gt; </span><span style="color: rgb(0, 0, 187);">77</span><span style="color: rgb(0, 119, 0);">, </span><span style="color: rgb(255, 128, 0);">// ключ = '02'<br>                   
+
</span><span style="color: rgb(0, 0, 187);">0    </span><span style="color: rgb(0, 119, 0);">=&gt; </span><span style="color: rgb(0, 0, 187);">12  </span><span style="color: rgb(255, 128, 0);">// значение 10 будет перезаписано на 12<br>               
+
</span><span style="color: rgb(0, 119, 0);">);<br>             
+
</span><span style="color: rgb(255, 128, 0);">// пустой массив<br>
+
</span><span style="color: rgb(0, 0, 187);">$empty </span><span style="color: rgb(0, 119, 0);">= array();<br>
+
</span><span style="color: rgb(0, 0, 187);">?&gt;</span></span></code>
+
<p><ins>Коллекция:</ins></p>
+
<code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);">&lt;?php<br>
+
  $colors </span><span style="color: rgb(0, 119, 0);">= array(</span><span style="color: rgb(221, 0, 0);">'красный'</span><span style="color: rgb(0, 119, 0);">, </span><span style="color: rgb(221, 0, 0);">'синий'</span><span style="color: rgb(0, 119, 0);">, </span><span style="color: rgb(221, 0, 0);">'зеленый'</span><span style="color: rgb(0, 119, 0);">, </span><span style="color: rgb(221, 0, 0);">'желтый'</span><span style="color: rgb(0, 119, 0);">);<br>
+
  foreach (</span><span style="color: rgb(0, 0, 187);">$colors </span><span style="color: rgb(0, 119, 0);">as </span><span style="color: rgb(0, 0, 187);">$color</span><span style="color: rgb(0, 119, 0);">) {<br>
+
      echo </span><span style="color: rgb(221, 0, 0);">"Вам нравится $color?\n"</span><span style="color: rgb(0, 119, 0);">;<br>
+
  }<br>
+
</span><span style="color: rgb(0, 0, 187);">?&gt;</span></span></code>
+
<p>Результат роботи розглянутого скрипта: </p>
+
<pre>Вам подобається червоний?
+
Вам подобається синій?
+
Вам подобається зелений?
+
Вам подобається жовтий? </pre>
+
<p><ins>Наступний приклад:</ins></p>
+
<code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);">&lt;?php<br>
+
  $firstquarter  </span><span style="color: rgb(0, 119, 0);">= array(</span><span style="color: rgb(0, 0, 187);">1 </span><span style="color: rgb(0, 119, 0);">=&gt; </span><span style="color: rgb(221, 0, 0);">'Январь'</span><span style="color: rgb(0, 119, 0);">, </span><span style="color: rgb(221, 0, 0);">'Февраль'</span><span style="color: rgb(0, 119, 0);">, </span><span style="color: rgb(221, 0, 0);">'Март'</span><span style="color: rgb(0, 119, 0);">);<br>
+
  </span><span style="color: rgb(0, 0, 187);">print_r</span><span style="color: rgb(0, 119, 0);">(</span><span style="color: rgb(0, 0, 187);">$firstquarter</span><span style="color: rgb(0, 119, 0);">);<br>
+
</span><span style="color: rgb(0, 0, 187);">?&gt;</span></span></code>
+
<p>Результат роботи наведеного скрипта буде наступний: </p>
+
<table bgcolor="#000000" border="1" cellpadding="5" cellspacing="1">
+
 
+
    <tr bgcolor="#00ccff">
+
 
+
      <td bgcolor="#def3fe"><pre>Array
+
(
+
    [1] =&gt; 'Январь'
+
    [2] =&gt; 'Февраль'
+
    [3] =&gt; 'Март'
+
)</pre></td>
+
    </tr>
+
</table>
+
<p><ins>Приклад заповнення масиву:</ins></p>
+
<code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);">&lt;?php<br>
+
</span><span style="color: rgb(255, 128, 0);">// заполняет массив всеми элементами директории<br>
+
</span><span style="color: rgb(0, 0, 187);">$handle </span><span style="color: rgb(0, 119, 0);">= </span><span style="color: rgb(0, 0, 187);">opendir</span><span style="color: rgb(0, 119, 0);">(</span><span style="color: rgb(221, 0, 0);">'.'</span><span style="color: rgb(0, 119, 0);">);<br>
+
while (</span><span style="color: rgb(0, 0, 187);">false </span><span style="color: rgb(0, 119, 0);">!== (</span><span style="color: rgb(0, 0, 187);">$file </span><span style="color: rgb(0, 119, 0);">= </span><span style="color: rgb(0, 0, 187);">readdir</span><span style="color: rgb(0, 119, 0);">(</span><span style="color: rgb(0, 0, 187);">$handle</span><span style="color: rgb(0, 119, 0);">))) {<br>
+
</span><span style="color: rgb(0, 0, 187);">$files</span><span style="color: rgb(0, 119, 0);">[] = </span><span style="color: rgb(0, 0, 187);">$file</span><span style="color: rgb(0, 119, 0);">;<br>
+
}<br>
+
</span><span style="color: rgb(0, 0, 187);">closedir</span><span style="color: rgb(0, 119, 0);">(</span><span style="color: rgb(0, 0, 187);">$handle</span><span style="color: rgb(0, 119, 0);">);<br>
+
</span><span style="color: rgb(0, 0, 187);">?&gt;</span> </span></code>
+
 
+
<p>Упорядкування масивів. Ви можете змінювати порядок елементів, використовуючи різні функції сортування. Для додаткової інформації дивіться розділ функції для роботи з масивами. Ви можете підрахувати кількість елементів у масиві, використовуючи функцію <b>count()</b></.</p>
+
<p><ins>Рекурсивні та багатовимірні масиви:</ins></p>
+
<code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);">&lt;?php<br>
+
  $fruits </span><span style="color: rgb(0, 119, 0);">= array ( </span><span style="color: rgb(221, 0, 0);">"фрукты" </span><span style="color: rgb(0, 119, 0);">=&gt; array ( </span><span style="color: rgb(221, 0, 0);">"a" </span><span style="color: rgb(0, 119, 0);">=&gt; </span><span style="color: rgb(221, 0, 0);">"апельсин"</span><span style="color: rgb(0, 119, 0);">,<br>                                   
+
  </span><span style="color: rgb(221, 0, 0);">"b" </span><span style="color: rgb(0, 119, 0);">=&gt; </span><span style="color: rgb(221, 0, 0);">"банан"</span><span style="color: rgb(0, 119, 0);">,<br>                                     
+
  </span><span style="color: rgb(221, 0, 0);">"c" </span><span style="color: rgb(0, 119, 0);">=&gt; </span><span style="color: rgb(221, 0, 0);">"яблоко"<br>                                     
+
  </span><span style="color: rgb(0, 119, 0);">),<br>                   
+
  </span><span style="color: rgb(221, 0, 0);">"числа"  </span><span style="color: rgb(0, 119, 0);">=&gt; array ( </span><span style="color: rgb(0, 0, 187);">1</span><span style="color: rgb(0, 119, 0);">,<br>                                       
+
  </span><span style="color: rgb(0, 0, 187);">2</span><span style="color: rgb(0, 119, 0);">,<br>                                     
+
  </span><span style="color: rgb(0, 0, 187);">3</span><span style="color: rgb(0, 119, 0);">,<br>                                     
+
  </span><span style="color: rgb(0, 0, 187);">4</span><span style="color: rgb(0, 119, 0);">,<br>                                     
+
  </span><span style="color: rgb(0, 0, 187);">5</span><span style="color: rgb(0, 119, 0);">,<br>                                     
+
  </span><span style="color: rgb(0, 0, 187);">6<br>                                     
+
  </span><span style="color: rgb(0, 119, 0);">),<br>                   
+
  </span><span style="color: rgb(221, 0, 0);">"дырки"  </span><span style="color: rgb(0, 119, 0);">=&gt; array (</span><span style="color: rgb(221, 0, 0);">"первая"</span><span style="color: rgb(0, 119, 0);">,<br>                                       
+
  </span><span style="color: rgb(0, 0, 187);">5 </span><span style="color: rgb(0, 119, 0);">=&gt; </span><span style="color: rgb(221, 0, 0);">"вторая"</span><span style="color: rgb(0, 119, 0);">,<br>                                           
+
  </span><span style="color: rgb(221, 0, 0);">"третья"<br>                                     
+
  </span><span style="color: rgb(0, 119, 0);">)<br>
+
          );<br>
+
  </span><span style="color: rgb(255, 128, 0);">// Несколько примеров доступа к значениям предыдущего массива<br>
+
  </span><span style="color: rgb(0, 119, 0);">echo </span><span style="color: rgb(0, 0, 187);">$fruits</span><span style="color: rgb(0, 119, 0);">[</span><span style="color: rgb(221, 0, 0);">"дырки"</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);">];    </span><span style="color: rgb(255, 128, 0);">// напечатает "вторая"<br>
+
  </span><span style="color: rgb(0, 119, 0);">echo </span><span style="color: rgb(0, 0, 187);">$fruits</span><span style="color: rgb(0, 119, 0);">[</span><span style="color: rgb(221, 0, 0);">"фрукты"</span><span style="color: rgb(0, 119, 0);">][</span><span style="color: rgb(221, 0, 0);">"a"</span><span style="color: rgb(0, 119, 0);">]; </span><span style="color: rgb(255, 128, 0);">// напечатает "апельсин"<br>
+
  </span><span style="color: rgb(0, 119, 0);">unset(</span><span style="color: rgb(0, 0, 187);">$fruits</span><span style="color: rgb(0, 119, 0);">[</span><span style="color: rgb(221, 0, 0);">"дырки"</span><span style="color: rgb(0, 119, 0);">][</span><span style="color: rgb(0, 0, 187);">0</span><span style="color: rgb(0, 119, 0);">]);  </span><span style="color: rgb(255, 128, 0);">// удалит "первая"<br>
+
  // Создаст новый многомерный массив<br>
+
  </span><span style="color: rgb(0, 0, 187);">$juices</span><span style="color: rgb(0, 119, 0);">[</span><span style="color: rgb(221, 0, 0);">"яблоко"</span><span style="color: rgb(0, 119, 0);">][</span><span style="color: rgb(221, 0, 0);">"зеленое"</span><span style="color: rgb(0, 119, 0);">] = </span><span style="color: rgb(221, 0, 0);">"хорошее"</span><span style="color: rgb(0, 119, 0);">;<br>
+
</span><span style="color: rgb(0, 0, 187);">?&gt;</span></span></code>
+
<p>Зверніть увагу, що при присвоєнні масиву завжди відбувається копіювання значення. Щоб копіювати масив за посиланням, вам потрібно використовувати оператор посилання:</p>
+
<code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);">&lt;?php<br>
+
  $arr1 </span><span style="color: rgb(0, 119, 0);">= array(</span><span style="color: rgb(0, 0, 187);">2</span><span style="color: rgb(0, 119, 0);">, </span><span style="color: rgb(0, 0, 187);">3</span><span style="color: rgb(0, 119, 0);">);<br>
+
  </span><span style="color: rgb(0, 0, 187);">$arr2 </span><span style="color: rgb(0, 119, 0);">= </span><span style="color: rgb(0, 0, 187);">$arr1</span><span style="color: rgb(0, 119, 0);">;<br>
+
  </span><span style="color: rgb(0, 0, 187);">$arr2</span><span style="color: rgb(0, 119, 0);">[] = </span><span style="color: rgb(0, 0, 187);">4</span><span style="color: rgb(0, 119, 0);">; </span><span style="color: rgb(255, 128, 0);">// $arr2 изменился,<br>
+
                // $arr1 по прежнему array(2,3)<br>           
+
  </span><span style="color: rgb(0, 0, 187);">$arr3 </span><span style="color: rgb(0, 119, 0);">= &amp;</span><span style="color: rgb(0, 0, 187);">$arr1</span><span style="color: rgb(0, 119, 0);">;<br>
+
  </span><span style="color: rgb(0, 0, 187);">$arr3</span><span style="color: rgb(0, 119, 0);">[] = </span><span style="color: rgb(0, 0, 187);">4</span><span style="color: rgb(0, 119, 0);">; </span><span style="color: rgb(255, 128, 0);">// теперь $arr1 и $arr3 эквивалентны<br>
+
</span><span style="color: rgb(0, 0, 187);">?&gt;</span> </span></code>
+
+
+
[[category:Інтернет-програмування|*]]
+
 
+
[[category:Навчальні проекти]]
+

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

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