Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ΅Π½ массив Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

ΠœΠ°ΡΡΠΈΠ²Ρ‹

МногиС сСгодня хотят ΡΡ‚Π°Ρ‚ΡŒ программистами. Π₯отят. Но Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°ΡŽΡ‚ для этого. НС Π΄Π΅Π»Π°ΡŽΡ‚ Π΄Π°ΠΆΠ΅ простых Π²Π΅Ρ‰Π΅ΠΉ. НС хотят Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΠ½ΠΈΠΆΠΊΡƒ ΠΈΠ· 10 страниц. Π’ ΠΈΡ‚ΠΎΠ³Π΅ Ρ‚Π°ΠΊ ΠΈ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π½ΠΈΠΊΠ΅ΠΌ. ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ‡Ρ‚Ρ‹ Π½Π΅ ΡΠ±Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π½ΠΈΠΊΠΎΠ³Π΄Π°. Π‘Π±Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ планы… ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅.

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ массива Π² памяти ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° располоТСны Π΄Ρ€ΡƒΠ³ Π·Π° Π΄Ρ€ΡƒΠ³ΠΎΠΌ. ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ элСмСнту массива ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎ индСксу этого элСмСнта.

Π’ качСствС индСкса массива ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ пСрСмСнная. Π­Ρ‚Π° пСрСмСнная Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ порядковый Ρ‚ΠΈΠΏ.

НСкоторыС языки программирования ΠΈ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ Π² своём арсСналС динамичСскиС массивы, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ массивы Π½Π΅ с фиксированной, Π° с Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒΡŽ.

Бинтаксис массива Π² ПаскалС:

var ИмяМассива : array[0..15] of Π’ΠΈΠΏΠ”Π°Π½Π½Ρ‹Ρ…;

var M1 : array[0..15] of byte;

Π Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ элСмСнтом массива ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊ:

var m : byte;
M1[0] := 100;
m := M1[0];

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ сначала Π² ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт массива записываСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 100, Π° ΠΏΠΎΡ‚ΠΎΠΌ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ m записываСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ элСмСнта массива. Π”ΠΎΠ³Π°Π΄Π°ΠΉΡ‚Π΅ΡΡŒ, ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ m послС этого))).

Но ΠΏΠΎΠ½ΡΡ‚ΡŒ всю ΠΏΡ€Π΅Π»Π΅ΡΡ‚ΡŒ использования массивов Π²Ρ‹ смоТСтС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅Ρ‚Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ всС элСмСнты массива Π² Ρ†ΠΈΠΊΠ»Π΅. НапримСр, Ρ‚Π°ΠΊ:

for i := 0 to 15 do M1[i] := i;
for i := 0 to 15 do Write(M1[i], ‘ ‘);

НадСюсь, Π½Π΅ Π½Π°Π΄ΠΎ ΠΎΠ±ΡŠΡΡΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ этот ΠΊΠΎΠ΄. А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅, сколько Π±Ρ‹ строк ΠΊΠΎΠ΄Π° Π²Π°ΠΌ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ, Ссли Π±Ρ‹ Ρ‚ΠΎ ΠΆΠ΅ самоС Π²Ρ‹ Π΄Π΅Π»Π°Π»ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

Π”Π²ΡƒΡ…ΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ Ρ‚Π°ΠΊ:

M2 : array[1..4, 1..2] of byte;

Π­Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° (ΠΈΠ»ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π°) 4Ρ…2. Π’ΠΎ Π΅ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ массив ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ количСство строк (Π² нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ 4) ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ количСство столбцов (Π² нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ 2). Π’ΠΎΠ³ΠΎ ΠΆΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ, Ссли ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ массив массивов:

M2e : array[1..4] of array[1..2] of byte;

Π‘Ρ‚Ρ€ΠΎΠΊΠ° 1, Π‘Ρ‚ΠΎΠ»Π±Π΅Ρ† 1Π‘Ρ‚Ρ€ΠΎΠΊΠ° 1, Π‘Ρ‚ΠΎΠ»Π±Π΅Ρ† 2
Π‘Ρ‚Ρ€ΠΎΠΊΠ° 2, Π‘Ρ‚ΠΎΠ»Π±Π΅Ρ† 1Π‘Ρ‚Ρ€ΠΎΠΊΠ° 2, Π‘Ρ‚ΠΎΠ»Π±Π΅Ρ† 2
Π‘Ρ‚Ρ€ΠΎΠΊΠ° 3, Π‘Ρ‚ΠΎΠ»Π±Π΅Ρ† 1Π‘Ρ‚Ρ€ΠΎΠΊΠ° 3, Π‘Ρ‚ΠΎΠ»Π±Π΅Ρ† 2
Π‘Ρ‚Ρ€ΠΎΠΊΠ° 4, Π‘Ρ‚ΠΎΠ»Π±Π΅Ρ† 1Π‘Ρ‚Ρ€ΠΎΠΊΠ° 4, Π‘Ρ‚ΠΎΠ»Π±Π΅Ρ† 2

Если Π²Ρ‹ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, М2[1, 3], Ρ‚ΠΎ компилятор выдаст ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ столбца 3 Π² нашСм массивС Π½Π΅ сущСствуСт. Однако Π±ΡƒΠ΄ΡŒΡ‚Π΅ остороТны! Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… срСдствах Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΡ€ΠΈ этом Π±ΡƒΠ΄Π΅Ρ‚ создана (зависит ΠΎΡ‚ настроСк срСды)! И Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π² послСдствии Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ.

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования нашСго Π΄Π²ΡƒΡ…ΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива:

НадСюсь, с этим ΠΊΠΎΠ΄ΠΎΠΌ Π²Ρ‹ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈΡΡŒ. Или хотя Π±Ρ‹ запустили Π΅Π³ΠΎ ΠΈ посмотрСли, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π΄Π΅Π»Π°Π΅Ρ‚. А ΠΎΠ½ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π΄Π²ΡƒΡ…ΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив Π½Π° экран. Но Π²Ρ‹Π²ΠΎΠ΄ выполняСтся Π² ΠΎΠ΄Π½Ρƒ строку. И это Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ для Π΄Π²ΡƒΡ…ΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива. Π’Π΅Π΄ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π² Ρ‚Π°ΠΊΠΈΡ… массивах прСдставлСны ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ (Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹). Π’ΠΎ Π΅ΡΡ‚ΡŒ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ Π²ΠΎΡΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Ссли ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Π²ΠΈΠ΄Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Π’ нашСм случаС Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Π±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ 4 строки ΠΈ 2 столбца.

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ эту Π·Π°Π΄Π°Ρ‡Ρƒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ. А Ссли Ρƒ вас Π½Π΅ получится, Ρ‚ΠΎ Π²ΠΎΡ‚ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ:

Π­Ρ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π½Π΅ являСтся ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π΅Π³ΠΎ слоТно ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊ массивам с Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒΡŽ (с Π΄Ρ€ΡƒΠ³ΠΈΠΌ количСством столбцов). Но Π·Π°Ρ‚ΠΎ ΠΎΠ½ΠΎ простоС. И Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… случаях Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ.

Π˜Π·ΡƒΡ‡ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ этот ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈ Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ всС участки ΠΊΠΎΠ΄Π°, Π³Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ константа k. Π”Π°Π»ΡŒΡˆΠ΅, надСюсь, Π²Ρ‹ Ρ€Π°Π·Π±Π΅Ρ€Ρ‘Ρ‚Π΅ΡΡŒ с этим ΠΊΠΎΠ΄ΠΎΠΌ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ.

Ну ΠΈ напослСдок добавлю, Ρ‡Ρ‚ΠΎ для опрСдСлСния индСксов массива ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠΆΠ΅ извСстныС Π½Π°ΠΌ ΠΏΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΡƒΡ€ΠΎΠΊΠ°ΠΌ стандартныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Low ΠΈ High. НапримСр, Ρ‚Π°ΠΊ:

WriteLn(‘ИндСкс ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ элСмСнта М1 : ‘, Low(M1));
WriteLn(‘ИндСкс послСднСго элСмСнта М1 : ‘, High(M1));

Π‘Ρ‚Π°Ρ‚ΡŒΡ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»Π°ΡΡŒ большС, Ρ‡Π΅ΠΌ я ΠΎΠΆΠΈΠ΄Π°Π». Но надСюсь, Ρƒ вас Ρ…Π²Π°Ρ‚ΠΈΠ»ΠΎ тСрпСния Π΄ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‘ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π°.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Website-create.ru

Π—Π°Π½ΠΈΠΌΠ°ΡΡΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, ΠΌΡ‹ достаточно часто сталкиваСмся с использованиСм массивов. Π£ ΠΌΠ½ΠΎΠ³ΠΈΡ… эта Ρ‚Π΅ΠΌΠ° Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ достаточно ΠΌΠ½ΠΎΠ³ΠΎ трудностСй ΠΈΠ·-Π·Π° нСпонимания Ρ‚ΠΎΠ³ΠΎ: Ρ‡Ρ‚ΠΎ ΠΈΠ· сСбя ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ массивы ΠΈ ΠΊΠ°ΠΊ с Π½ΠΈΠΌΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. Однако, ΠΈΡ… использованиС Π±Ρ‹Π»ΠΎ, Π΅ΡΡ‚ΡŒ ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹ΠΉ частСй написания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ИмСнно поэтому, сСгодня Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Π±Ρ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ массивах.
Как я ΡƒΠΆΠ΅ сказала, массивы ΠΎΡ‡Π΅Π½ΡŒ распространСнная Π²Π΅Ρ‰ΡŒ. НаиболСС часто, Ссли Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π²Π΅Π±-сайтов, ΠΌΡ‹ сталкиваСмся с Π½ΠΈΠΌΠΈ Π² php ΠΈ JavaScript ΠΊΠΎΠ΄Π°Ρ…. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅, различия ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с массивами Π² php ΠΈ JavaScript ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ, Π½ΠΎ поняв, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с массивами Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· языков программирования, Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ, Π½Π΅ составит практичСски Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ Ρ‚Ρ€ΡƒΠ΄Π°.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ я Π±ΡƒΠ΄Ρƒ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ массивах ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ языка php.

Π§Ρ‚ΠΎ ΠΆΠ΅ Ρ‚Π°ΠΊΠΎΠ΅ массивы?

По ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ, Массив β€” это Π½ΡƒΠΌΠ΅Ρ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² массивС – это элСмСнты массива. Π˜Ρ… позиция Π² массивС задаСтся индСксом.

Если ΠΏΠΎΠ½ΡΡ‚ΡŒ это Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ просто, Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅ сСбС Β«Π²ΠΎΠ»ΡˆΠ΅Π±Π½ΡƒΡŽΒ» ΠΊΠΎΡ€ΠΎΠ±ΠΊΡƒ. Π’ Π½Π΅ΠΉ Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ сколько ΡƒΠ³ΠΎΠ΄Π½ΠΎ ΠΎΡ‚Π΄Π΅Π»ΠΎΠ² ΠΈ ΡΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π² эти ΠΎΡ‚Π΄Π΅Π»Ρ‹. ΠŸΡ€ΠΈ нСобходимости, Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅: ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»Ρ‹; ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅; Π²Ρ‹Ρ‚Π°ΡΠΊΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ содСрТимоС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π² Π½ΠΈΡ… находится; Π·Π°ΠΌΠ΅Π½ΡΡ‚ΡŒ содСрТимоС ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… отсСков Ρ‡Π΅ΠΌ-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠΌ; Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π°ΠΆΠ΅ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· отсСков Π΄Ρ€ΡƒΠ³ΠΎΠΉ массив, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ содСрТит Ρ€Π°Π·Π½Ρ‹Π΅ ΠΎΡ‚Π΄Π΅Π»Ρ‹.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Массив – это Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит Π² сСбС Π½Π°Π±ΠΎΡ€ элСмСнтов. Π‘Ρ€Π°Π·Ρƒ хочСтся ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ элСмСнты эти, Ссли ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ языкС php, Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠ²Π»ΡΡ‚ΡŒΡΡ ΠΎΠ΄Π½ΠΎΡ‚ΠΈΠΏΠ½Ρ‹ΠΌΠΈ!

Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ½Ρ‹ массивы?

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π’Π°ΠΌ Π½Π΅ совсСм понятно, для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ массивы.

Π”Π°Π²Π°ΠΉΡ‚Π΅ прСдставим ΠΎΠ΄ΠΈΠ½ нСслоТный ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

Π‘ΠΊΠ°ΠΆΠ΅ΠΌ, Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ срСднСС арифмСтичСскоС число ΠΏΡ€ΠΎΠ΄Π°ΠΆ Π·Π° мСсяц (ΠΈΠ»ΠΈ Π·Π° Π³ΠΎΠ΄). Для этого Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ число ΠΏΡ€ΠΎΠ΄Π°ΠΆ Π·Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ дСнь мСсяца ΠΈ, соотвСтствСнно, Π³Π΄Π΅-Ρ‚ΠΎ эти Π΄Π°Π½Π½Ρ‹Π΅ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ 30 ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… (ΠΈΠ»ΠΈ 356, Ссли Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ ΠΎ Π³ΠΎΠ΄Π΅). Π’Ρ‹ ΡƒΠΆΠ΅ подсчитали сколько строк ΠΊΠΎΠ΄Π° Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ?

Π”Π°Π»Π΅Π΅ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρƒ, которая Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ срСднСС арифмСтичСскоС. Для этого Π½ΡƒΠΆΠ½ΠΎ ΡΠ»ΠΎΠΆΠΈΡ‚ΡŒ всС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒ сумму Π½Π° число Π΄Π½Π΅ΠΉ. НС каТСтся Π»ΠΈ Π’Π°ΠΌ, Ρ‡Ρ‚ΠΎ Ρ„ΠΎΡ€ΠΌΡƒΠ»Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ «слСгка» Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΊΠΎΠΉ?

ΠŸΡ€ΠΈ всСм ΠΏΡ€ΠΈ этом, объявляя Ρ‚Π°ΠΊΠΎΠ΅ большоС число ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Π° ΠΏΠΎΡ‚ΠΎΠΌ подставляя всС это Π² Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρƒ Π½Π΅ΠΌΡƒΠ΄Ρ€Π΅Π½ΠΎ Π΄ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΈ наш Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΌ. А Ρ‡Ρ‚ΠΎ, Ссли Π² ΠΎΠ΄ΠΈΠ½ прСкрасный ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π°ΠΌ понадобится ΡƒΠ·Π½Π°Ρ‚ΡŒ срСднСС арифмСтичСскоС Π½Π΅ Π·Π° 30 Π΄Π½Π΅ΠΉ, Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π° ΠΏΠΎΠ»Ρ‚ΠΎΡ€Π° мСсяца? НуТно ΠΌΠ΅Π½ΡΡ‚ΡŒ вСсь ΠΊΠΎΠ΄!

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ массив Π² этой ситуации, ΠΌΡ‹ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΠΌ сСбС Тизнь. Π’Π΅Π΄ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ·Π½Π°Ρ‚ΡŒ: число элСмСнтов массива, сумму элСмСнтов массива, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ всС Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ ΠΏΡ€ΠΎΠ΄Π°ΠΆΠ°Ρ… Π² ΠΎΠ΄Π½ΠΎΠΌ Ρ‚ΠΈΠΏΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… – массивС, ΠΈ ΠΏΡ€ΠΈ этом Π½Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ количСство ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

Π­Ρ‚ΠΎ лишь ΠΎΠ΄ΠΈΠ½ нСбольшой ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π’Π°ΠΌ ΠΏΠΎΠ½ΡΡ‚ΡŒ – Π·Π°Ρ‡Π΅ΠΌ ΠΆΠ΅ Π½ΡƒΠΆΠ½Ρ‹ массивы. На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ ΠΆΠ΅, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ постоянно. И Ссли Π·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с массивами, Ρ‚ΠΎ ΠΈΡ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ становится Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ Π»Π΅Π³ΠΊΠΈΠΌ.

Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с массивами Π½ΡƒΠΆΠ½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ знания. Π― ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΡŽ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΡΠ΅Ρ€ΠΈΡŽ статСй, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚Π°ΡŽΡΡŒ Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎ Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Ρ… тонкостях, функциях ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ эта ΡΡ‚Π°Ρ‚ΡŒΡ – лишь Π½Π°Ρ‡Π°Π»ΠΎ знакомства с массивами.

Π­Ρ‚ΠΎ слСдуСт ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, работая с массивами!

ΠœΡ‹ ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΠ»ΠΈ, Ρ‡Ρ‚ΠΎ Π½Π°Ρ‡Π°Π»ΠΎ Ρ‡Π΅Π³ΠΎ-Π»ΠΈΠ±ΠΎ отсчитываСтся с Β«1Β». Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… ситуациях Ρ‚Π°ΠΊ ΠΎΠ½ΠΎ ΠΈ Π΅ΡΡ‚ΡŒ, Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ Π² ситуации с массивами.

Π― ΡƒΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»Π°, Ρ‡Ρ‚ΠΎ позиция элСмСнта Π² массивС задаСтся Π΅Π΅ индСксом. Π’Π°ΠΊ Π²ΠΎΡ‚ нумСрация элСмСнтов массива начинаСтся Π½Π΅ с 1, Π° с 0. Π­Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ всСгда ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π΄ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ошибок!

Π’Π°ΠΊΠΆΠ΅ слСдуСт ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ массива Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΎΠ±Ρ‰Π΅Π΅ количСство элСмСнтов Π² массивС.

Как ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ массив

ΠžΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ (ΠΈΠ»ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ) массив ΠΌΠΎΠΆΠ½ΠΎ нСсколькими способами.

МоТно ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ массив поэлСмСнтно, указывая индСкс.

Для этого сначала ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°ΠΉΡ‚Π΅ имя для Π’Π°ΡˆΠ΅Π³ΠΎ массива. НапримСр, Π΄Π°Π΄ΠΈΠΌ массиву имя Β«$Mass1Β». Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ массив ΠΈ занСсти Ρ‚ΡƒΠ΄Π° ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅.

Как Π’Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅, сначала ΠΈΠ΄Π΅Ρ‚ имя нашСго массива (ΠΏΡ€ΠΈ объявлСнии Π½Π΅ Π·Π°Π±Ρ‹Π²Π°Π΅ΠΌ Π·Π½Π°ΠΊ Β«$Β»), Π΄Π°Π»Π΅Π΅ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… указываСтся индСкс элСмСнта, Π΄Π°Π»Π΅Π΅ Π·Π½Π°ΠΊ присваивания Β«=Β» ΠΈ само Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ элСмСнта. Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ значСния ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой Ρ†Π΅Π»Ρ‹Π΅ числа, Π² ΠΊΠΎΠ½Ρ†Π΅ Ρ‚ΠΎΡ‡ΠΊΠ° с запятой.

МоТно ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚ΠΎΠΆΠ΅ самоС, Π½ΠΎ Π½Π΅ указывая индСксы. ΠŸΡ€ΠΈ этом php автоматичСски присвоит индСкс для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ элСмСнта Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ большС послСднСго. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ элСмСнт Π² ΠΊΠΎΠ½Π΅Ρ† массива.

Но, ΠΊΠ°ΠΊ Π’Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ, ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки всС ΠΆΠ΅ Π½ΡƒΠΆΠ½Ρ‹. Php Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π΅Π»ΠΎ с массивом.

Π•ΡΡ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ способ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π½Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ всС элСмСнты массива сразу Π² ΠΎΠ΄Π½Ρƒ строку. Однако, вмСсто ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобок потрСбуСтся ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ слово Β«arrayΒ», ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈ расскаТСт php ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ Π΄Π΅Π»ΠΎ с массивом.

Π’ΠΎΡ‚ Ρ‚Π°ΠΊ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ массивы ΠΈ Π·Π°ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΈΡ… Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ элСмСнтами.

На самом Π΄Π΅Π»Π΅ это Π½Π΅ всС способы, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π΅Ρ‰Π΅ ΠΈ ассоциативныС ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы, Π½ΠΎ ΠΎ Π½ΠΈΠΌ ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅. ВсС ΠΏΠΎ-порядку.

ΠœΡ‹ Π½Π°ΡƒΡ‡ΠΈΠ»ΠΈΡΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ массивы. Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ элСмСнт массива.

Как ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ элСмСнт массива

Π˜Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡƒ-Π»ΠΈΠ±ΠΎ элСмСнту массива, ΠΌΡ‹ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ индСкс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ указываСтся Ρ‚Π°ΠΊΠΆΠ΅ Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобках.

ΠŸΡ€ΠΈ этом слСдуСт ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ индСксация начинаСтся с нуля.

Допустим Ρƒ нас Π΅ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ массив:

Π§Ρ‚ΠΎΠ±Ρ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт массива ΠΈ вывСсти Π΅Π³ΠΎ Π½Π° экран, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄:

Π’ ΠΈΡ‚ΠΎΠ³Π΅, Π½Π° экранС ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ элСмСнта массива – «Маша».

А Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ вСсь php-ΠΊΠΎΠ΄ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… символов объявлСния php. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ этого ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π°ΠΊΠΈΠΌ:

БоотвСтствСнно, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π²Ρ‚ΠΎΡ€ΠΎΠΉ элСмСнт, вмСсто нуля Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобках ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ ΠΈ Ρ‚.Π΄.

Π’Π°ΠΊΠΆΠ΅ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ элСмСнт Π² массив ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ.

Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ элСмСнт Π² ΠΊΠΎΠ½Π΅Ρ† массива, достаточно ΠΏΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

А Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ элСмСнт, Π½ΡƒΠΆΠ½ΠΎ Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобках ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ индСкс Ρ‚ΠΎΠ³ΠΎ элСмСнта, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π΅ΠΌΡƒ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π’ΠΎΡ‚ Ρ‚Π°ΠΊ:

И Π½Π° послСдок Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π΅ массива.

Как ΡƒΠ·Π½Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива

Π”ΠΎΠ²ΠΎΠ»ΡŒΠ½ΠΎ часто для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… вычислСний Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива, Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, количСство Π΅Π³ΠΎ элСмСнтов.

Π’ php ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Β«countΒ»:

Или ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Β«sizeofΒ»:

Оба Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° Π²Ρ‹Π²Π΅Π΄ΡƒΡ‚ Π½Π° экран Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ – Β«5Β». Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈ Π½Π΅ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π° экран, Π° просто занСсти Π΅Π³ΠΎ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΈ ΠΏΠΎΡ‚ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΌ, Π³Π΄Π΅ Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ.

Π”ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ Π½Π° сСгодня Π½Π° этом ΠΌΡ‹ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠΌ, Π° Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΈ знакомство с массивами.

Если эта Ρ‚Π΅ΠΌΠ° для Вас Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Π°, Ρ‚ΠΎ ΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ свой ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ.

Π’Π°ΠΊΠΆΠ΅ Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ ΡΡ‚Π°Ρ‚ΡŒΠ΅ΠΉ со своими Π΄Ρ€ΡƒΠ·ΡŒΡΠΌΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠ½ΠΎΠΏΠΎΠΊ ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… сСтСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π’Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Ρ‡ΡƒΡ‚ΡŒ Π½ΠΈΠΆΠ΅.

Если Π’Ρ‹ Π΅Ρ‰Π΅ Π½Π΅ подписаны Π½Π° обновлСния Π±Π»ΠΎΠ³Π°, Ρ‚ΠΎ Ρ„ΠΎΡ€ΠΌΠ° подписки Ρ‚Π°ΠΊΠΆΠ΅ Π½ΠΈΠΆΠ΅.

Π–Π΅Π»Π°ΡŽ Π’Π°ΠΌ успСхов ΠΈ Π΄ΠΎ встрСчи Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… публикациях.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”Π°Π΄ΠΈΠΌ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅:

массив — структурированный Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…, состоящий ΠΈΠ· Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ числа элСмСнтов ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°.

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² возмоТностях ΠΈ особСнностях ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ массивов Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… Π½Π° ассСмблСрС, Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ вопросы:

Β· Как ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ массивв ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅?

Β· Как ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ массив, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΊ Π·Π°Π΄Π°Ρ‚ΡŒ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ значСния Π΅Π³ΠΎ элСмСнтов?

Β· Как ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ доступк элСмСнтам массива?

Β· Как ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ массивыс Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒΡŽ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠΉ?

Β· Как ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с массивами?

ОписаниС ΠΈ инициализация массива Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅

Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… срСдств описания массивов Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… ассСмблСра, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π½Π΅Ρ‚. ΠŸΡ€ΠΈ нСобходимости ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ массив Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… способов:

1. ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠ΅ΠΌ элСмСнтов массива Π² ΠΏΠΎΠ»Π΅ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ² описания Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΡ€ΠΈ пСрСчислСнии элСмСнты Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ запятыми. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ:

;массив ΠΈΠ· 5 элСмСнтов.Π Π°Π·ΠΌΠ΅Ρ€ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта 4 Π±Π°ΠΉΡ‚Π°:

2. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ повторСния dup. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ:

;массив ΠΈΠ· 5 Π½ΡƒΠ»Π΅Π²Ρ‹Ρ… элСмСнтов.

;Π Π°Π·ΠΌΠ΅Ρ€ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта 2 Π±Π°ΠΉΡ‚Π°:

Π’Π°ΠΊΠΎΠΉ способ опрСдСлСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для рСзСрвирования памяти с Ρ†Π΅Π»ΡŒΡŽ размСщСния ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ элСмСнтов массива.

3. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ labelΠΈrept. ΠŸΠ°Ρ€Π° этих Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ² ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ΡŒ описаниС Π±ΠΎΠ»ΡŒΡˆΠΈΡ… массивов Π² памяти ΠΈ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ Π½Π°Π³Π»ΡΠ΄Π½ΠΎΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ³ΠΎ описания. Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π°reptотносится ΠΊ макросрСдствам языка ассСмблСра ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠ΅ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ число Ρ€Π°Π· строк, Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²ΠΎΠΉ ΠΈ строкой endm. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ массив Π±Π°ΠΉΡ‚ Π² области памяти, ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌmas_b. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π°labelопрСдСляСт символичСскоС имяmas_b, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ Ρ‚ΠΎΠΌΡƒ, ΠΊΠ°ΠΊ это Π΄Π΅Π»Π°ΡŽΡ‚ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ рСзСрвирования ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ памяти. Достоинство Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹labelΠ² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° Π½Π΅ Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠ°ΠΌΡΡ‚ΡŒ, Π° лишь опрСдСляСт характСристики ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ β€” это ячСйка памяти. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ нСсколько Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²label, записанных ΠΎΠ΄Π½Π° Π·Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ области памяти Ρ€Π°Π·Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° ΠΈ Ρ€Π°Π·Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ, Ρ‡Ρ‚ΠΎ ΠΈ сдСлано Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π΅:

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π² памяти Π±ΡƒΠ΄Π΅Ρ‚ создана ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… слов f1f0. Π­Ρ‚Ρƒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Ρ€Π°ΠΊΡ‚ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ массив Π±Π°ΠΉΡ‚ ΠΈΠ»ΠΈ слов Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠ΅ имя области ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ β€”mas_bΠΈΠ»ΠΈmas_w.

4. ИспользованиС Ρ†ΠΈΠΊΠ»Π° для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ значСниями области памяти, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ впослСдствии Ρ‚Ρ€Π°ΠΊΡ‚ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ массив.

5. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ листинга 2, ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ это дСлаСтся.

Листинг 2 Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ массива Π² Ρ†ΠΈΠΊΠ»Π΅

mes db 0ah,0dh,’Массив- ‘,’$’

mas db 10 dup (?) ;исходный массив

xor ax,ax ;ΠΎΠ±Π½ΡƒΠ»Π΅Π½ΠΈΠ΅ ax

mov cx,10 ;Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ счСтчика Ρ†ΠΈΠΊΠ»Π° Π² cx

mov si,0 ;индСкс Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ элСмСнта Π² cx

go: ;Ρ†ΠΈΠΊΠ» ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ

mov mas[si],bh ;запись в массив i

inc si ;ΠΏΡ€ΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ элСмСнту массива

loop go ;ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ Ρ†ΠΈΠΊΠ»

;Π²Ρ‹Π²ΠΎΠ΄ Π½Π° экран ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠ΅Π³ΠΎΡΡ массива

mov ah,02h ;функция Π²Ρ‹Π²ΠΎΠ΄Π° значСния ΠΈΠ· al Π½Π° экран

add dl,30h ;ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ числа Π² символ

mov ax,4c00h ;стандартный Π²Ρ‹Ρ…ΠΎΠ΄

end main ;ΠΊΠΎΠ½Π΅Ρ† ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Доступ ΠΊ элСмСнтам массива

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с массивами Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ сСбС, Ρ‡Ρ‚ΠΎ всС элСмСнты массива Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ Π² памяти ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ.

Π‘Π°ΠΌΠΎ ΠΏΠΎ сСбС Ρ‚Π°ΠΊΠΎΠ΅ располоТСниС Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ ΠΈ порядкС использования этих элСмСнтов. И Ρ‚ΠΎΠ»ΡŒΠΊΠΎ лишь программист с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ составлСнного ΠΈΠΌ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ опрСдСляСт, ΠΊΠ°ΠΊ Π½ΡƒΠΆΠ½ΠΎ Ρ‚Ρ€Π°ΠΊΡ‚ΠΎΠ²Π°Ρ‚ΡŒ эту ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π±Π°ΠΉΡ‚, ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… массив. Π’Π°ΠΊ, ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Ρ€Π°ΠΊΡ‚ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив, ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Ρ‚Π΅ ΠΆΠ΅ самыС Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Ρ‚Ρ€Π°ΠΊΡ‚ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ Π΄Π²ΡƒΡ…ΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив. ВсС зависит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ этих Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. Π‘Π°ΠΌΠΈ ΠΏΠΎ сСбС Π΄Π°Π½Π½Ρ‹Π΅ Π½Π΅ нСсут Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ своСм β€œΡΠΌΡ‹ΡΠ»ΠΎΠ²ΠΎΠΌβ€, ΠΈΠ»ΠΈ логичСском, Ρ‚ΠΈΠΏΠ΅. ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅ ΠΎΠ± этом ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π΅.

Π­Ρ‚ΠΈ ΠΆΠ΅ сообраТСния ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈ Π½Π° индСксы элСмСнтов массива. АссСмблСр Π½Π΅ ΠΏΠΎΠ΄ΠΎΠ·Ρ€Π΅Π²Π°Π΅Ρ‚ ΠΎΠ± ΠΈΡ… сущСствовании ΠΈ Π΅ΠΌΡƒ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ всС Ρ€Π°Π²Π½ΠΎ, ΠΊΠ°ΠΊΠΎΠ²Ρ‹ ΠΈΡ… числСнныС смысловыС значСния.

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ элСмСнт массива, ΠΊ Π΅Π³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ индСкс. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΡƒΠ΅ΠΌ массив, Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ·Π°Π±ΠΎΡ‚ΠΈΡ‚ΡŒΡΡ ΠΈ ΠΎ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ индСкса. Π’ языкС ассСмблСра индСксы массивов β€” это ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ адрСса, Π½ΠΎ с Π½ΠΈΠΌΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ особым ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° ассСмблСрС ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎΠ± индСксС, Ρ‚ΠΎ скорСС ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅ΠΌ ΠΏΠΎΠ΄ этим Π½Π΅ Π½ΠΎΠΌΠ΅Ρ€ элСмСнта Π² массивС, Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ адрСс.

Π”Π°Π²Π°ΠΉΡ‚Π΅ Π΅Ρ‰Π΅ Ρ€Π°Π· обратимся ΠΊ описанию массива. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ статичСски ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ…:

ΠŸΡƒΡΡ‚ΡŒ эта ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ чисСл трактуСтся ΠΊΠ°ΠΊ ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив. Π Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта опрСдСляСтся Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²ΠΎΠΉ dw, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΠ½Π° Ρ€Π°Π²Π½Π°2Π±Π°ΠΉΡ‚Π°. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΌΡƒ элСмСнту, Π½ΡƒΠΆΠ½ΠΎ ΠΊ адрСсу массива ΠΏΡ€ΠΈΠ±Π°Π²ΠΈΡ‚ΡŒ6. НумСрация элСмСнтов массива Π² ассСмблСрС начинаСтся с нуля.

Π’ΠΎ Π΅ΡΡ‚ΡŒ Π² нашСм случаС Ρ€Π΅Ρ‡ΡŒ, фактичСски, ΠΈΠ΄Π΅Ρ‚ ΠΎ 4-ΠΌ элСмСнтС массива β€” 3, Π½ΠΎ ΠΎΠ± этом Π·Π½Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ программист; микропроцСссору Π² Π΄Π°Π½Π½ΠΎΠΌ случаС всС Ρ€Π°Π²Π½ΠΎ β€” Π΅ΠΌΡƒ Π½ΡƒΠΆΠ΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ адрСс.

Π’ ΠΎΠ±Ρ‰Π΅ΠΌ случаС для получСния адрСса элСмСнта Π² массивС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ (Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ) адрСс массива ΡΠ»ΠΎΠΆΠΈΡ‚ΡŒ с ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ индСкса (Π½ΠΎΠΌΠ΅Ρ€ элСмСнта минус Π΅Π΄ΠΈΠ½ΠΈΡ†Π°) этого элСмСнта Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ элСмСнта массива:

Π±Π°Π·Π° + (индСкс*Ρ€Π°Π·ΠΌΠ΅Ρ€ элСмСнта)

АрхитСктура микропроцСссора прСдоставляСт достаточно ΡƒΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ-Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Π΅ срСдства для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с массивами. К Π½ΠΈΠΌ относятся Π±Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΈ индСксныС рСгистры, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСсколько Ρ€Π΅ΠΆΠΈΠΌΠΎΠ² адрСсации Π΄Π°Π½Π½Ρ‹Ρ…. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π΄Π°Π½Π½Ρ‹Π΅ Ρ€Π΅ΠΆΠΈΠΌΡ‹ адрСсации, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ с массивами Π² памяти. Вспомним эти Ρ€Π΅ΠΆΠΈΠΌΡ‹:

Β· индСксная адрСсация со смСщСниСм β€” Ρ€Π΅ΠΆΠΈΠΌ адрСсации, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ эффСктивный адрСс формируСтся ΠΈΠ· Π΄Π²ΡƒΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²:

o постоянного (Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ)β€” ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ прямого адрСса массива Π² Π²ΠΈΠ΄Π΅ ΠΈΠΌΠ΅Π½ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°, ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‰Π΅Π³ΠΎ Π½Π°Ρ‡Π°Π»ΠΎ массива;

o ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ (индСксного)β€” ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΈΠΌΠ΅Π½ΠΈ индСксного рСгистра.

;ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ 3-ΠΉ элСмСнт массива mas Π² рСгистр ax:

Β· базовая индСксная адрСсация со смСщСниСм β€” Ρ€Π΅ΠΆΠΈΠΌ адрСсации, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ эффСктивный адрСс формируСтся максимум ΠΈΠ· Ρ‚Ρ€Π΅Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²:

o постоянного(Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚), Π² качСствС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ прямой адрСс массива Π² Π²ΠΈΠ΄Π΅ ΠΈΠΌΠ΅Π½ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°, ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‰Π΅Π³ΠΎ Π½Π°Ρ‡Π°Π»ΠΎ массива, ΠΈΠ»ΠΈ нСпосрСдствСнноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅;

o ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ (Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ)β€” ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΈΠΌΠ΅Π½ΠΈ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ рСгистра;

o ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ (индСксного)β€” ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΈΠΌΠ΅Π½ΠΈ индСксного рСгистра.

Π­Ρ‚ΠΎΡ‚ Π²ΠΈΠ΄ адрСсации ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π΄Π²ΡƒΡ…ΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивов. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования этой адрСсации ΠΌΡ‹ рассмотрим Π΄Π°Π»Π΅Π΅ ΠΏΡ€ΠΈ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ особСнностСй Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Π²ΡƒΡ…ΠΌΠ΅Ρ€Π½Ρ‹ΠΌΠΈ массивами.

Напомним, Ρ‡Ρ‚ΠΎ Π² качСствС Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ рСгистра ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ любой ΠΈΠ· восьми рСгистров ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния. Π’ качСствС индСксного рСгистра Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ любой рСгистр ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ esp/sp.

ΠœΠΈΠΊΡ€ΠΎΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€ позволяСт ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ индСкс. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ссли ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ послС ΠΈΠΌΠ΅Π½ΠΈ индСксного рСгистра Π·Π½Π°ΠΊ умноТСния β€œ*” с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ†ΠΈΡ„Ρ€ΠΎΠΉ 2, 4 ΠΈΠ»ΠΈ 8, Ρ‚ΠΎ содСрТимоС индСксного рСгистра Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΌΠ½ΠΎΠΆΠ°Ρ‚ΡŒΡΡ Π½Π° 2, 4 ΠΈΠ»ΠΈ 8, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ.

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ с массивами, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ элСмСнтов, Ρ€Π°Π²Π½Ρ‹ΠΉ 2, 4 ΠΈΠ»ΠΈ 8 Π±Π°ΠΉΡ‚, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ микропроцСссор сам ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ†ΠΈΡŽ индСкса для получСния адрСса ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠ³ΠΎ элСмСнта массива. Нам Π½ΡƒΠΆΠ½ΠΎ лишь Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π² индСксный рСгистр Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠ³ΠΎ индСкса (считая ΠΎΡ‚ 0). ΠšΡΡ‚Π°Ρ‚ΠΈ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ появилась Π² микропроцСссорах Intel, начиная с ΠΌΠΎΠ΄Π΅Π»ΠΈ i486. По этой ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ Π² рассматриваСмом здСсь ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ стоит Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° .486. Π•Π΅ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠ°ΠΊ ΠΈ Ρ€Π°Π½Π΅Π΅ использовавшСйся Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹.386, Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ассСмблСру ΠΏΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ Π½Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΡƒΡ‡Π΅Ρ‚Π° ΠΈ использования Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… возмоТностСй систСмы ΠΊΠΎΠΌΠ°Π½Π΄ Π½ΠΎΠ²Ρ‹Ρ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ микропроцСссоров.

Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° использования ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ рассмотрим листинг 3, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ просматриваСтся массив, состоящий ΠΈΠ· слов, ΠΈ производится сравнСниС этих элСмСнтов с Π½ΡƒΠ»Π΅ΠΌ. Выводится ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ сообщСниС.

Листинг 3. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ массива слов с использованиСм

.data ;Π½Π°Ρ‡Π°Π»ΠΎ сСгмСнта Π΄Π°Π½Π½Ρ‹Ρ…

mes1 db ‘Π½Π΅ Ρ€Π°Π²Π΅Π½ 0!$’,0ah,0dh

mes2 db ‘Ρ€Π°Π²Π΅Π½ 0!$’,0ah,0dh

mas dw 2,7,0,0,1,9,3,6,0,8 ;исходный массив

.486 ;это ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ

mov ds,ax ;связка ds с сСгмСнтом Π΄Π°Π½Π½Ρ‹Ρ…

xor ax,ax ;ΠΎΠ±Π½ΡƒΠ»Π΅Π½ΠΈΠ΅ ax

mov cx,10 ;Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ счСтчика Ρ†ΠΈΠΊΠ»Π° Π² cx

mov esi,0 ;индСкс в esi

mov dx,mas[esi*2] ;ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт массива Π² dx

cmp dx,0 ;сравнСниС dx c 0

je equal ;ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄, Ссли Ρ€Π°Π²Π½ΠΎ

not_equal: ;Π½Π΅ Ρ€Π°Π²Π½ΠΎ

mov ah,09h ;Π²Ρ‹Π²ΠΎΠ΄ сообщСния Π½Π° экран

mov ah,02h ;Π²Ρ‹Π²ΠΎΠ΄ Π½ΠΎΠΌΠ΅Ρ€Π° элСмСнта массива Π½Π° экран

inc esi ;Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ элСмСнт

dec cx ;условиС для Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· Ρ†ΠΈΠΊΠ»Π°

jcxz exit ;cx=0? Если Π΄Π° β€” Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄

jmp compare ;Π½Π΅Ρ‚ β€” ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ Ρ†ΠΈΠΊΠ»

mov ah,09h ;Π²Ρ‹Π²ΠΎΠ΄ сообщСния mes3 Π½Π° экран

mov ah,09h ;Π²Ρ‹Π²ΠΎΠ΄ сообщСния mes2 Π½Π° экран

inc esi ;Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ элСмСнт

dec cx ;всС элСмСнты ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹?

mov ax,4c00h ;стандартный Π²Ρ‹Ρ…ΠΎΠ΄

end main ;ΠΊΠΎΠ½Π΅Ρ† ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Π•Ρ‰Π΅ нСсколько слов ΠΎ ΡΠΎΠ³Π»Π°ΡˆΠ΅Π½ΠΈΡΡ…:

Β· Если для описания адрСса ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ рСгистр, Ρ‚ΠΎ Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ ΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠΉ адрСсациии этот рСгистр рассматриваСтся ΠΊΠ°ΠΊΠ±Π°Π·ΠΎΠ²Ρ‹ΠΉ:

;ΠΏΠ΅Ρ€Π΅ΡΠ»Π°Ρ‚ΡŒ Π±Π°ΠΉΡ‚ ΠΈΠ· области Π΄Π°Π½Π½Ρ‹Ρ…, адрСс

ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ находится Π² рСгистрС ebx:

Β· Если для задания адрСса Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ прямая адрСсация(Π² Π²ΠΈΠ΄Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°) Π² сочСтании с ΠΎΠ΄Π½ΠΈΠΌ рСгистром, Ρ‚ΠΎ Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ обиндСксной адрСсации. РСгистр считаСтсяиндСксным, ΠΈ поэтому ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ для получСния адрСса Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ элСмСнта массива:

;ΡΠ»ΠΎΠΆΠΈΡ‚ΡŒ содСрТимоС eax с Π΄Π²ΠΎΠΉΠ½Ρ‹ΠΌ словом Π² памяти

;ΠΏΠΎ адрСсу mas + (ebx)*4

Β· Если для описания адрСса ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π΄Π²Π° рСгистра, Ρ‚ΠΎ Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ ΠΎ Π±Π°Π·ΠΎΠ²ΠΎ-индСксной адрСсации. Π›Π΅Π²Ρ‹ΠΉ рСгистр рассматриваСтся ΠΊΠ°ΠΊ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ, Π° ΠΏΡ€Π°Π²Ρ‹ΠΉ β€” ΠΊΠ°ΠΊ индСксный. Π’ ΠΎΠ±Ρ‰Π΅ΠΌ случаС это Π½Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½ΠΎ, Π½ΠΎ Ссли ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ с ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· рСгистров, Ρ‚ΠΎ ΠΎΠ½ всСгда являСтсяиндСксным. Но Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… соглашСний.

Β· ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ рСгистров ebp/bpΠΈesp/spΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ сСгмСнтная ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ адрСса находится Π² рСгистрСss.

Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π±Π°Π·ΠΎΠ²ΠΎ-ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΡƒΡŽ Π°Π΄Ρ€Π΅ΡΠ°Ρ†ΠΈΡŽ Π½Π΅ возбраняСтся ΡΠΎΡ‡Π΅Ρ‚Π°Ρ‚ΡŒ с прямой адрСсациСй ΠΈΠ»ΠΈ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ нСпосрСдствСнного значСния. АдрСс Ρ‚ΠΎΠ³Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ сумма всСх ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ².

;адрСс ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π° Ρ€Π°Π²Π΅Π½ [mas+(ebx)+(ecx)*2]

;адрСс ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π° Ρ€Π°Π²Π΅Π½ [(ebx)+8+(ecx)*4]

Но ΠΈΠΌΠ΅ΠΉΡ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ эффСктивно лишь Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ элСмСнтов массива Ρ€Π°Π²Π½Π° 2, 4 ΠΈΠ»ΠΈ 8 Π±Π°ΠΉΡ‚. Если ΠΆΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ элСмСнтов другая, Ρ‚ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ элСмСнтам массива Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ способом, ΠΊΠ°ΠΊ описано Ρ€Π°Π½Π΅Π΅.

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с массивом ΠΈΠ· пяти Ρ‚Ρ€Π΅Ρ…Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹Ρ… элСмСнтов (листинг 4). Младший Π±Π°ΠΉΡ‚ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· этих элСмСнтов прСдставляСт собой Π½Π΅ΠΊΠΈΠΉ счСтчик, Π° ΡΡ‚Π°Ρ€ΡˆΠΈΠ΅ Π΄Π²Π° Π±Π°ΠΉΡ‚Π° β€” Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π΅Ρ‰Π΅, для нас Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π΅ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ значСния. НСобходимо ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ элСмСнты Π΄Π°Π½Π½ΠΎΠ³ΠΎ массива, ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ² значСния счСтчиков Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ.

Листинг 4. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° массива элСмСнтов с Π½Π΅Ρ‡Π΅Ρ‚Π½ΠΎΠΉ Π΄Π»ΠΈΠ½ΠΎΠΉ

MODEL small ;модСль памяти

STACK 256 ;Ρ€Π°Π·ΠΌΠ΅Ρ€ стСка

.data ;Π½Π°Ρ‡Π°Π»ΠΎ сСгмСнта Π΄Π°Π½Π½Ρ‹Ρ…

N=5 ;количСство элСмСнтов массива

mas db 5 dup (3 dup (0))

main: ;Ρ‚ΠΎΡ‡ΠΊΠ° Π²Ρ…ΠΎΠ΄Π° Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ

xor ax,ax ;ΠΎΠ±Π½ΡƒΠ»Π΅Π½ΠΈΠ΅ ax

mov dl,mas[si] ;ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π±Π°ΠΉΡ‚ поля Π² dl

inc dl ;ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ dl Π½Π° 1 (ΠΏΠΎ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ)

mov mas[si],dl ;Π·Π°ΡΠ»Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² массив

add si,3 ;сдвиг Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ элСмСнт массива

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π’Ρ‹ ΠΏΡ€Π°Π²Π΄Π° Π·Π½Π°Π΅Ρ‚Π΅ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ массивы?

Π’Π°ΠΌ, Π³Π΄Π΅ я Ρ‚Ρ€ΡƒΠΆΡƒΡΡŒ, ΠΎΡ‚ Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‚ знания PHP ΠΈ JavaScript. Π―, проводя собСсСдования, ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ», Ρ‡Ρ‚ΠΎ достаточно Π·Π°Π΄Π°Ρ‚ΡŒ всСго ΠΎΠ΄ΠΈΠ½ простой вопрос для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, насколько Π³Π»ΡƒΠ±ΠΎΠΊΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚ инструмСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ дСнь. Π’ΠΎΡ‚ этот вопрос:

ΠšΠ°ΠΊΠΎΠ²Ρ‹ сходства ΠΈ различия массивов Π² JavaScript ΠΈ Π² PHP?

Одно Π΄Π΅Π»ΠΎ β€” ΡƒΠΌΠ΅Π½ΠΈΠ΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄. И ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ β€” ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… языков.

Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ΅Π½ массив Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ΅Π½ массив Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ΅Π½ массив Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ΅Π½ массив Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ΅Π½ массив Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

ΠžΡ‚Π²Π΅Ρ‚ Π½Π° этот СдинствСнный вопрос Π΄Π°Ρ‘Ρ‚ ΠΌΠ½Π΅ Ρ†Π΅Π»ΠΎΠ΅ ΠΌΠΎΡ€Π΅ свСдСний ΠΎ собСсСдуСмом. Π’Π΅Π΄ΡŒ ΠΏΠΎΡ‡Ρ‚ΠΈ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ распространённом языкС Π΅ΡΡ‚ΡŒ массивы. Π›Π΅Π³ΠΊΠΎ Π²Ρ‹Π΄Π²ΠΈΠ½ΡƒΡ‚ΡŒ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π² соотвСтствии с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ массивы Π² Ρ€Π°Π·Π½Ρ‹Ρ… языках β€” это, Π±ΠΎΠ»Π΅Π΅ ΠΈΠ»ΠΈ ΠΌΠ΅Π½Π΅Π΅, ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅. МногиС программисты Ρ‚Π°ΠΊ ΠΈ Π΄Π΅Π»Π°ΡŽΡ‚.

Π­Ρ‚ΠΎ β€” Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π²Π΅Π΄ΡƒΡ‰Π΅Π΅ ΠΊ мноТСству ΠΌΠ΅Π»ΠΊΠΈΡ… ошибок, ΠΊ написанию Π½Π΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ устроСнного ΠΊΠΎΠ΄Π°, ΠΊ нСвозмоТности эффСктивно ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡΠΈΠ»ΡŒΠ½Ρ‹ΠΌΠΈ сторонами языка.

ΠœΠ°ΡΡΠΈΠ²Ρ‹ ΠΈ ΠΈΡ… Ρ€ΠΎΠ΄Π½ΠΎΠΉ язык β€” C

Π―Π·Ρ‹ΠΊ C β€” это Π½Π΅ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π² истории язык программирования, Π½ΠΎ это β€” язык, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сильнСС Π΄Ρ€ΡƒΠ³ΠΈΡ… повлиял Π½Π° IT-ΠΈΠ½Π΄ΡƒΡΡ‚Ρ€ΠΈΡŽ. МногиС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΡƒΡ‡ΠΈΠ»ΠΈ Π² институтах C Π² качСствС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ языка. И PHP, ΠΈ JavaScript Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ взяли ΠΎΡ‚ C. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ сходство ΠΌΠ΅ΠΆΠ΄Ρƒ этими языками ΠΈ C, ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ Π°Π½Π°Π»ΠΈΠ· массивов Π² C ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚ΠΎ, ΠΊΠ°ΠΊ Π΄Π°Π»Π΅ΠΊΠΎ эти структуры Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΠ»ΠΈΡΡŒ с 1972 Π³ΠΎΠ΄Π°.

Π’ C массивы строго Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π΄Π»ΠΈΠ½Ρƒ.

Π’Ρ‹ΡˆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Π° ΠΏΠ°Ρ€Π° объявлСний массивов. Они ΠΌΠΎΠ³ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ†Π΅Π»Ρ‹Π΅ числа, количСство ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ 10.

Подобная конструкция Π½Π΅ выглядит Π΄ΠΈΠΊΠΎΠΉ Π½ΠΈ Π² JavaScript, Π½ΠΈ Π² PHP. Но ΠΈΠΌΠ΅Π½Π½ΠΎ здСсь ΠΈ кроСтся ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ.

ΠœΠ°ΡΡΠΈΠ²Ρ‹ Π² JavaScript

МоТно ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ сСбС, Ρ‡Ρ‚ΠΎ массивы Π² JavaScript ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° массивы Π² C. И ΠΏΡ€Π°Π²Π΄Π° β€” Π² JS ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ смотрятся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ конструкции:

Однако массивы Π² JavaScript ΠΈ Π² C β€” это Ρ€Π°Π·Π½Ρ‹Π΅ Π²Π΅Ρ‰ΠΈ. НапримСр, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅, ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Π² C Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ:

Π’ JavaScript массивы ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π΄Π»ΠΈΠ½Ρƒ. Π’ΠΈΠΏ ΠΈΡ… содСрТимого Π½Π΅ контролируСтся β€” Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Ρ‚ΠΈΠΏ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. Π―Π·Ρ‹ΠΊ Π±Π΅Ρ€Ρ‘Ρ‚ Π½Π° сСбя ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π΄Π»ΠΈΠ½Π° массива способна ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΈΠ»ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Ρ‚ΡŒΡΡ, Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ± этом Π½Π΅ Π·Π°Π΄ΡƒΠΌΡ‹Π²Π°Ρ‚ΡŒΡΡ. JavaScript-массивы, Π½Π° самом Π΄Π΅Π»Π΅, ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° списки.

ΠŸΠ΅Ρ€Π΅Π±ΠΎΡ€ массива ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ, ΠΏΠΎΠ»ΡŒΠ·ΡƒΡΡΡŒ Π½Π΅ΡƒΠ΄Π°Ρ‡Π½Ρ‹ΠΌ способом, позаимствованным ΠΈΠ· C:

Но Π² JavaScript ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ‹Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с массивами. ΠœΠ°ΡΡΠΈΠ²Ρ‹ Π² JS β€” это Π½Π΅ просто Π½Π΅ΠΊΠΈΠ΅ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠ΅ структуры Π΄Π°Π½Π½Ρ‹Ρ…. Они, ΠΊΠ°ΠΊ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ класса. Π£ Π½ΠΈΡ… Π΅ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ Π°Π΄Π΅ΠΊΠ²Π°Ρ‚Π½ΠΎ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ:

Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ΅Π½ массив Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ΅Π½ массив Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ΅Π½ массив Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ΅Π½ массив Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ΅Π½ массив Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

НСкоторыС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ массивов

ΠœΠ°ΡΡΠΈΠ²Ρ‹ Π² PHP

ΠœΠ°ΡΡΠΈΠ²Ρ‹ Π² PHP ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° JavaScript-массивы.

Они, ΠΊΠ°ΠΊ ΠΈ JS-массивы, ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½ΠΎΠΉ ΠΈ слабой Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ соблазн Ρ€Π΅ΡˆΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ массивы Π² PHP ΠΈ Π² JS β€” это ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅.

Лямбда-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² PHP Π½Π΅ Ρ‚Π°ΠΊ красивы, ΠΊΠ°ΠΊ ΠΏΠΎΡ…ΠΎΠΆΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² JS (Π² ES6), Π½ΠΎ этот ΠΏΡ€ΠΈΠΌΠ΅Ρ€, написанный Π½Π° PHP, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ эквивалСнтСн Ρ€Π°Π½Π΅Π΅ рассмотрСнному JS-ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ.

Но Π½Π° JavaScript (ΠΊΠ°ΠΊ ΠΈ Π½Π° C) нСльзя Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π΅Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ (Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ ΠΊΠΎΠ΄ Π½Π° JavaScript, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ, Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ это Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π² PHP):

Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ PHP-массивы ΠΌΠΎΠ³ΡƒΡ‚ с успСхом Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ€ΠΎΠ»ΡŒ простых поисковых Ρ‚Π°Π±Π»ΠΈΡ†:

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ доступно ΠΈ Π² JavaScript, хотя Ρ‚ΡƒΡ‚ ΡƒΠΆΠ΅ Π½Π°Π΄ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠ±Π΅Π³Π½ΡƒΡ‚ΡŒ ΠΊ возмоТностям ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Но ΠΈΠ·-Π·Π° этого придётся ΠΏΠΎΠΉΡ‚ΠΈ Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ компромиссы. А ΠΈΠΌΠ΅Π½Π½ΠΎ, ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Π² распоряТСнии Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² массивов Π²Ρ€ΠΎΠ΄Π΅ Ρ‚Π΅Ρ…, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ Π²Ρ‹ΡˆΠ΅.

Π’ Ρ†ΠΈΠΊΠ»Π΅ даётся доступ ΠΈ ΠΊ ΠΊΠ»ΡŽΡ‡Π°ΠΌ, ΠΈ ΠΊ значСниям, Ρ‡Ρ‚ΠΎ позволяСт программисту Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈ с Ρ‚Π΅ΠΌ, ΠΈ с Π΄Ρ€ΡƒΠ³ΠΈΠΌ.

Π‘Ρ‚ΠΎΠΈΡ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ PHP-массивы ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ JS-массивов Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π² PHP для выполнСния Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с массивами приходится ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ внСшними ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ Π½ΠΈΠΌ функциями:

Π­Ρ‚ΠΎ β€” Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ, Π½ΠΎ Π½Π΅ Ρ‚Π°ΠΊ красиво, ΠΊΠ°ΠΊ Π² JavaScript. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с PHP-массивами, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ ΠΊΠΎΠ΄, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π² JavaScript (ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΡΠΈΠ»ΡŒΠ½Ρ‹Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π² ΠΏΠΎΠ»ΡŒΠ·Ρƒ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°), Ρ‚ΠΎ Π²Π°ΠΌ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, стоит Π²Π·Π³Π»ΡΠ½ΡƒΡ‚ΡŒ Π½Π° спСциализированноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅. Π‘ΠΊΠ°ΠΆΠ΅ΠΌ β€” Π½Π° класс Collection ΠΈΠ· Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Laravel. Однако PHP позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, возмоТности ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡŽΡ‚ возмоТности массивов (ΠΈΡ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π² Ρ†ΠΈΠΊΠ»Π°Ρ… foreach ).

Если PHP β€” это ваш основной язык программирования β€” Π²Ρ‹, ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΠ½ΡƒΠ² ΠΊ Π½Π΅ΠΌΡƒ, Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π±Ρ‹Ρ‚ΡŒ ΠΎ Ρ‚ΠΎΠΉ ΠΌΠΎΡ‰ΠΈ, которая таится Π² Π΅Π³ΠΎ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ°Ρ….

PHP-массивы β€” это, Π² Π΄Π²ΡƒΡ… словах, самая нСдооцСнённая ΠΈ самая нСзамСтная Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ языка, которая, Ссли Π΅ΠΉ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ, способна принСсти ΠΎΠ³Ρ€ΠΎΠΌΠ½ΡƒΡŽ ΠΏΠΎΠ»ΡŒΠ·Ρƒ.

Π˜Ρ‚ΠΎΠ³ΠΈ: вопрос ΠΈ ΠΎΡ‚Π²Π΅Ρ‚

Вопрос: ΠšΠ°ΠΊΠΎΠ²Ρ‹ сходства ΠΈ различия массивов Π² JavaScript ΠΈ Π² PHP?

ΠžΡ‚Π²Π΅Ρ‚: Π² PHP ΠΈ JavaScript массивы β€” это, ΠΏΠΎ сути, слабо Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ списки ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹. Π’ JavaScript ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ элСмСнтов массивов ΡΠ²Π»ΡΡŽΡ‚ΡΡ упорядочСнныС Ρ†Π΅Π»Ρ‹Π΅ числа. Π’ PHP массивы ΠΌΠΎΠΆΠ½ΠΎ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ ΠΈ со списками, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ сортировку, ΠΈ со словарями, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ поиск элСмСнтов ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Ρƒ. ΠšΠ»ΡŽΡ‡ΠΈ PHP-массивов ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹ΠΌΠΈ значСниями ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ², Π° ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ массивы ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Π°ΠΌ ΠΈΠ»ΠΈ ΠΏΠΎ значСниям.

Π£Π²Π°ΠΆΠ°Π΅ΠΌΡ‹Π΅ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΠΈ! Как Π²Ρ‹ Π΄ΡƒΠΌΠ°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊΠΈΡ… стандартных возмоТностСй большС всСго Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚ JavaScript-массивам?

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *